CSS Modules: Extract Imports

Transforms:

:local(.continueButton) {
composes: button from "library/button.css";
color: green;
}

into:

:import("library/button.css") {
button: __tmp_487387465fczSDGHSABb;
}
:local(.continueButton) {
composes: __tmp_487387465fczSDGHSABb;
color: green;
}

# Specification

- Only a certain whitelist of properties are inspected. Currently, that whitelist is ‘['composes’]` alone.
- An extend-import has the following format:
  composes: className [... className] from "path/to/file.css";

# Options

- `failOnWrongOrder` `bool` generates exception for unpredictable imports order.

.aa {
composes: b from './b.css';
composes: c from './c.css';
}
.bb {
/* "b.css" should be before "c.css" in this case */
composes: c from './c.css';
composes: b from './b.css';
}

# Building

npm install
npm test

- Lines:
- Statements:

# Development

- `npm watch` will watch `src` for changes and rebuild
- `npm autotest` will watch `src` and `test` for changes and retest

# License

ISC

# With thanks

- Mark Dalgleish
- Tobias Koppers
- Guy Bedford

Glen Maddern, 2015.