vue-cli3是个好东西,但是好东西也有不完美的地方。
在使用的过程中,遇到了一些莫名其妙或因姿势不对出现的error,在这里记录下来。也算是前人栽树,后人乘凉。
设置别名 alias 的注意事项
在根目录新建vue.config.js
const path = require("path");
function resolve(dir) {
return path.join(__dirname, dir);
}
module.exports = {
configureWebpack: {
resolve: {
alias: {
"@": resolve("src")
}
}
}
};
复制代码
在App.vue
文件中使用@别名
import HelloWorld from "@/components/HelloWorld";
复制代码
编译后终端报错如下:
ERROR Failed to compile with 1 errors 20:49:36
error in ./src/App.vue
Module Error (from ./node_modules/eslint-loader/index.js):
error: Missing file extension for "@/components/HelloWorld" (import/extensions) at src/App.vue:11:24:
9 |
10 | <script>
> 11 | import HelloWorld from "@/components/HelloWorld";
复制代码
这是因为eslint-loader不能解析@的缘故
安装eslint-import-resolver-webpack
并配置
yarn add eslint-import-resolver-webpack -D
复制代码
在package.json
或者.eslinttrc.js
设置如下:
module.exports = {
root: true,
'settings': {
"import/resolver": {
"webpack": {
"config": "node_modules/@vue/cli-service/webpack.config.js"
}
}
}
}
复制代码
至此即可解决上面的报错
eslint rule import/extensions
引起的错误提示
当设置了如下规则时:
/* .eslinttrc.js */
module.exports = {
root: true,
'settings': {
"import/resolver": {
"webpack": {
"config": "node_modules/@vue/cli-service/webpack.config.js"
}
}
},
rules: {
'import/extensions': ['error', 'always', {
'js': 'never',
'vue': 'never'
}]
}
}
复制代码
引入的文件出现错误提示(编辑器vscode)
开发环境:macOS Sierra 10.12.6
[eslint] Missing file extension for "@/components/HelloWorld"
复制代码
这个原因找了半天,都没找到。最后鬼使神差的发现原来是项目的路径太深
导致的。真是太过奇葩!
所有评论(0)