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