css-modules-loader-core
    DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/css-modules-loader-core package

    1.1.0 • Public • Published

    CSS Module Loader Core

    A loader-agnostic CSS Modules implementation, based on PostCSS

    Build Status

    API

    import Core from 'css-modules-loader-core'
    let core = new Core()

    core.load( sourceString , sourcePath , pathFetcher ) =>
      Promise({ injectableSource, exportTokens })

    Processes the input CSS sourceString, looking for dependencies such as @import or :import. Any localisation will happen by prefixing a sanitised version of sourcePath When dependencies are found, it will ask the pathFetcher for each dependency, resolve & inline any imports, and return the following object:

    • injectableSource: the final, merged CSS file without @import or :import statements
    • exportTokens: the mapping from local name to scoped name, as described in the file's :export block

    These should map nicely to what your build-tool-specific loader needs to do its job.

    new Core([plugins])

    The default set of plugins is [postcss-modules-local-by-default, postcss-modules-extract-imports, postcss-modules-scope] (i.e. the CSS Modules specification). This can override which PostCSS plugins you wish to execute, e.g.

    import Core from 'css-loader-core'
    import autoprefixer from 'autoprefixer'
    import colorFunctions from 'postcss-color-function'
     
    // Don't run local-by-default, but use colorFunctions 
    // beforehand and autoprefixer afterwards:
    let core = new Core([
      colorFunctions, 
      core.plugins.extractImports, 
      core.plugins.scope, 
      autoprefixer("Last 2 Versions")
    ])

    Install

    npm i css-modules-loader-core

    DownloadsWeekly Downloads

    470,575

    Version

    1.1.0

    License

    ISC

    Last publish

    Collaborators

    • geelen
    • joshwnj