您的位置:首页 > Web前端 > JavaScript

配置 Webpack resolve alias 简化相对路径 import

2018-09-12 20:36 1181 查看

webpack 配置

在 js 中 import 相对路径代码的时候经常出现路径层级较深的情况,引入起来比较麻烦(虽然 webstorm 支持提示简化了不少),所以在 webpack 中可以做如下配置:

resolve: {
alias: {
'@': path.resolve(__dirname, './src'),
}
},

于是
import {getJson, del} from '../../../../model/apiUtils';
就可以写成
import {getJson, del} from '@/model/apiUtils';


当然,使用
resolve.modules
也可以达到类似效果:

resolve: {
modules: [
context,
'node_modules',
]
},

这样配置的话引入语句就变成了
import {getJson, del} from 'model/apiUtils


不过这样的缺陷也很明显,如果自己的某个文件夹与
node_modules
下的组件同名的话会忽略后者,这样可能无法达到我们想要的效果,所以推荐使用
alias
模式。

eslint 配置

不过上述配置之后,在 eslint 里面会提示:

Unable to resolve path to module '@/component' import/no-unresolved

解决办法是使用 eslint-import-resolver-alias,在 eslint 配置中增加如下代码:

"settings": {
"import/resolver": {
"alias": {
"map": [
["@", "./src"]
],
"extensions": [".js", ".jsx", ".json"]
}
}
},

Over
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Webpack JSX ESLint WebStorm