GithubHelp home page GithubHelp logo

fmal / typescript-plugin-css-modules Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mrmckeb/typescript-plugin-css-modules

0.0 1.0 0.0 303 KB

A TypeScript language service plugin providing support for CSS Modules.

License: MIT License

TypeScript 97.01% CSS 2.99%

typescript-plugin-css-modules's Introduction

typescript-plugin-css-modules

CircleCI branch npm license

A TypeScript language service plugin for CSS Modules.

typescript-plugin-css-modules example

This project was inspired by this create-react-app issue and was based on css-module-types.

Usage

To install with Yarn:

yarn add typescript-plugin-css-modules

To install with npm:

npm install --save typescript-plugin-css-modules

Once installed, add this plugin to your tsconfig.json:

{
  "compilerOptions": {
    "plugins": [{ "name": "typescript-plugin-css-modules" }]
  }
}

Options

Option Default value Description
customMatcher "\\.module\\.(sa|sc|c)ss$" Change the file extensions that this plugin works with.
camelCase false Implements the behaviour of the camelCase CSS Loader option (accepting the same values).

The below is an example that only matches "*.m.css" files, and camel-cases dashes.

{
  "compilerOptions": {
    "plugins": [
      {
        "name": "typescript-plugin-css-modules",
        "options": {
          "customMatcher": "\\.m\\.css$",
          "camelCase": "dashes"
        }
      }
    ]
  }
}

Visual Studio Code

By default, VSCode will use it's own version of TypeScript. To make it work with this plugin, you have two options:

  1. Add this plugin to "typescript.tsserver.pluginPaths" in settings. Note that this method doesn't currently support plugin options.
{
  "typescript.tsserver.pluginPaths": ["typescript-plugin-css-modules"]
}
  1. Use your workspace's version of TypeScript, which will load the plugins from your tsconfig.json file. For instructions, see: Using the workspace version of TypeScript.

Custom definitions

Note: Create React App users can skip this section if you're using [email protected] or higher.

If your project doesn't already have global declarations for CSS Modules, you will need to add these to help TypeScript understand the general shape of the imported CSS.

Where you store global declarations is up to you. An example might look like: src/custom.d.ts.

The below is an example that you can copy, or modify if you use a customMatcher.

declare module '*.module.css' {
  const classes: { [key: string]: string };
  export default classes;
}

declare module '*.module.scss' {
  const classes: { [key: string]: string };
  export default classes;
}

declare module '*.module.sass' {
  const classes: { [key: string]: string };
  export default classes;
}

typescript-plugin-css-modules's People

Contributors

mrmckeb avatar xiaoxiangmoe avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.