vue-cli3是个好东西,可是好东西也有不完美的地方。
在使用的过程当中,遇到了一些莫名其妙或因姿式不对出现的error,在这里记录下来。也算是前人栽树,后人乘凉。vue
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";
复制代码
编译后终端报错以下:node
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不能解析@的缘故webpack
eslint-import-resolver-webpack
并配置yarn add eslint-import-resolver-webpack -D
复制代码
在package.json
或者.eslinttrc.js
设置以下:git
module.exports = {
root: true,
'settings': {
"import/resolver": {
"webpack": {
"config": "node_modules/@vue/cli-service/webpack.config.js"
}
}
}
}
复制代码
至此便可解决上面的报错github
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'
}]
}
}
复制代码
开发环境:macOS Sierra 10.12.6vue-cli
[eslint] Missing file extension for "@/components/HelloWorld"
复制代码
这个缘由找了半天,都没找到。最后鬼使神差的发现原来是项目的路径太深
致使的。真是太过奇葩!json