为什么80%的码农都做不了架构师?>>>
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