Ensures that module (import-like or `url`) can be resolved to a module on the file system.
npm install stylelint-no-unresolved-module[![Build Status][ci-img]][ci]
Ensures that module (import-like or url) can be resolved to a module on the
file system.
Nodes which are considered "modules":
- @import at-rule in CSS and SCSS files (including [pkg:
URLs][sass-pkg-url])
- @use and @forward at-rule as
Sass modules (including
[pkg: URLs][sass-pkg-url])
- url declaration value for
various declaration properties>)
Features:
- oxc-resolver to resolve
each resource
- Handling partials for Sass files
``sh`
npm install stylelint-no-unresolved-module --save
Add this config to your .stylelintrc:
`json`
{
"plugins": ["stylelint-no-unresolved-module"],
"rules": {
"plugin/no-unresolved-module": {
"alias": {
"assets": "pebbles"
},
"modules": ["node_modules", "local_modules"]
}
}
}
Assuming file system like this:
``
.
├── package.json
├── index.css
├── milo/
│ └── macy.css
├── node_modules/
│ └── josie/
│ ├── package.json
│ ├── rusty.css
│ └── index.css
└── local_modules/
├── pebbles/
│ └── tucker.png
└── shelby/
└── shelby.css
Assuming code is run from ./index.css:
`css
/**
These resources can be resolved /
@import url('josie');
@import url('shelby/shelby.css');
@import url('./milo/macy.css');
body {
background: url('assets/tucker.jpg');
}
/**
These resources can’t be resolved /
@import url('shelby');
@import url('josie/misty.css');
@import url('./milo/index.css');
body {
background: url('assets/sandy.jpg');
}
`
Plugin accepts either boolean (true) or object configuration.
If boolean, it will use default configuration:
- No aliases
- Look only inside node_modules for non-relative resource paths
If object configuration, following properties are valid:
Type: string process.cwd()
Default:
Root directory from where to start resolving resources. If it’s not defined,
directory of file will be used. Useful for situations where you don’t have
original file.
Type: Object
A list of module alias configurations or an object which maps key to value. See
original documentation.
Type: string[]
A list of directories to resolve modules from. See
original documentation.
Type: string[]
A list of root paths. See
original documentation.
Type: object`
TypeScript related config for resolver. See
original documentation.
MIT © Ivan Nikolić
[ci]: https://github.com/niksy/stylelint-no-unresolved-module/actions?query=workflow%3ACI
[ci-img]: https://github.com/niksy/stylelint-no-unresolved-module/actions/workflows/ci.yml/badge.svg?branch=master
[sass-pkg-url]: https://sass-lang.com/documentation/js-api/classes/nodepackageimporter/