Package Exports
- css-modules-loader-core
- css-modules-loader-core/lib/file-system-loader
- css-modules-loader-core/lib/index.js
- css-modules-loader-core/lib/parser
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (css-modules-loader-core) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
CSS Module Loader Core
A loader-agnostic CSS Modules implementation, based on PostCSS
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
statementsexportTokens
: 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")
])