# postcss-modules-resolve-imports

> Resolves ICSS imports

Latest version **1.3.0** (published 2017-09-10) · MIT license · 0 weekly downloads

## Install

```sh
npm install postcss-modules-resolve-imports
pnpm add postcss-modules-resolve-imports
yarn add postcss-modules-resolve-imports
bun add postcss-modules-resolve-imports
```

## Health

**Score 23/100 (F)** — status: abandoned.

Positive: has types package; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.3.0 |
| Published | 2017-09-10 |
| First published | 2017-03-05 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | separate (@types/postcss-modules-resolve-imports) |
| Module format | CommonJS |
| Node | >= 4 |
| Dependencies | 3 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 9 |
| Author | Alexey Litvinov |
| Maintainers | sullenor |

## Links

- npm: https://www.npmjs.com/package/postcss-modules-resolve-imports
- Repository: https://github.com/css-modules/postcss-modules-resolve-imports
- Homepage: https://github.com/css-modules/postcss-modules-resolve-imports#readme
- Issues: https://github.com/css-modules/postcss-modules-resolve-imports/issues
- npm.io page: https://npm.io/package/postcss-modules-resolve-imports

## Dependencies (3)

- [minimist](https://npm.io/package/minimist.md) ^1.2.0
- [icss-utils](https://npm.io/package/icss-utils.md) ^3.0.1
- [css-selector-tokenizer](https://npm.io/package/css-selector-tokenizer.md) ^0.7.0

## Recent versions

- 1.3.0 (latest) — 2017-09-10
- 1.2.1 — 2017-09-05
- 1.2.0 — 2017-05-22
- 1.1.2 — 2017-05-21
- 1.1.1 — 2017-03-18
- 1.1.0 — 2017-03-08
- 1.0.0 — 2017-03-05

## README

CSS Modules: Resolve Imports
============================


Transforms:

```css
:import("library/button.css") {
  i__imported_button_0: button;
}
:export {
  continueButton: _source_continueButton i__imported_button_0;
}
._source_continueButton {
  color: green;
}
```

into:

```css
:export {
  continueButton: _source_continueButton _button_button
}
._button_button {
  /*common button styles*/
}
._source_continueButton {
  color: green
}
```

**Note**: should be used after [postcss-modules-extract-imports](https://github.com/css-modules/postcss-modules-extract-imports) and [postcss-modules-scope](https://github.com/css-modules/postcss-modules-scope).

The `postcss-moduels-resolve-imports` plugin also fixes `@import` and `url()` paths (which doesn't start from `/`) for the included modules from the different folders.


## Options

`icssExports` `boolean`

Adds the `:export` declaration to the resulting css. In case you need the JavaScript object with tokens, you may obtain it by accessing the `lazyResult.root.exports` property. For example,

```javascript
const lazyResult = postcss([...plugins]).process(cssString, {from: filepath});
const tokens = lazyResult.root.exports;
```


`resolve` `object`

Configure how modules should be resolved.


`resolve.alias` `object`

Create an aliases for the modules paths. For example, create an alias for the *lib* directory with common modules:

```javascript
alias: {
  lib: path.resolve(__dirname, 'lib'),
},
```

Now, instead of using relative paths when composing:

```css
.button {
  composes: normal from '../../lib/button.css';
}
```

you can use the alias:

```css
.button {
  composes: normal from 'lib/button.css';
}
```


`resolve.extensions` `array`

Automaticaly check files with the provided extensions.

```javascript
['.css']
```

Allows you to omit file extensions while using compose:

```css
.button {
  composes: normal from '../lib/button';
}
```


`resolve.modules` `array`

Provide additional directories to check the modules in. Should be absolute paths only.

```javascript
[path.resolve(__dirname, 'lib')]
```


`resolve.mainFile` `string`

Specifies the default filename to be used while resolving directories. Default: `index.css`.


`resolve.preserveSymlinks` `boolean`

Wether to resolve symlinks in paths. Defaults to nodejs behaviour: `false`, 
(parsed from `--preserve-symlinks` or environment variable `PRESERVE_SYMLINKS`).


## Reference Guides

- Interoperable CSS: https://github.com/css-modules/icss
- NodeJS modules resolving mechanism: https://nodejs.org/dist/latest-v6.x/docs/api/modules.html#modules_all_together


## License

> The MIT License

---
_Source: https://npm.io/package/postcss-modules-resolve-imports · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
