Package Exports
- eslint-import-resolver-alias
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 (eslint-import-resolver-alias) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
eslint-import-resolver-alias
This is a simple Node.js module import resolution plugin for eslint-plugin-import
, which supports native Node.js module resolution, module alias/mapping and custom file extensions.
Installation
Prerequisites: Node.js >=4.x and corresponding version of npm.
npm install eslint-plugin-import eslint-import-resolver-alias --save-dev
Usage
Pass this resolver and its parameters to eslint-plugin-import
using your eslint
config file, .eslintrc
or .eslintrc.js
.
// .eslintrc.js
module.exports = {
settings: {
'import/resolver': {
alias: {
map: [
['babel-polyfill', 'babel-polyfill/dist/polyfill.min.js'],
['helper', './utils/helper'],
['material-ui/DatePicker', '../custom/DatePicker'],
['material-ui', 'material-ui-ie10']
],
extensions: ['.ts', '.js', '.jsx', '.json']
}
}
}
};
Note:
- The alias config object contains two properties,
map
andextensions
, both of which are array types - The item of
map
array is also array type which contains 2 string- The first string represents the alias of module name or path
- The second string represents the actual module name or path
- The
map
item['helper', './utils/helper']
means that the modules which matchhelper
orhelper/*
will be resolved to./utils/helper
or./utils/helper/*
which are located relative to theprocess current working directory
(almost the project root directory). If you just want to resolvehelper
to./utils/helper
, use['^helper$', './utils/helper']
instead. See issue #3 - The order of 'material-ui/DatePicker' and 'material-ui' cannot be reversed, otherwise the alias rule 'material-ui/DatePicker' does not work
- The default value of
extensions
property is['.js', '.json', '.node']
if it is assigned to an empty array or not specified
If the extensions
property is not specified, the config object can be simplified to the map
array.
// .eslintrc.js
module.exports = {
settings: {
'import/resolver': {
alias: [
['babel-polyfill', 'babel-polyfill/dist/polyfill.min.js'],
['helper', './utils/helper'],
['material-ui/DatePicker', '../custom/DatePicker'],
['material-ui', 'material-ui-ie10']
]
}
}
};
When the config is not a valid object (such as true
), the resolver falls back to native Node.js module resolution.
// .eslintrc.js
module.exports = {
settings: {
'import/resolver': {
alias: true
}
}
};