使用vue-cli3建立項目,踩坑記錄

vue-cli3是個好東西,可是好東西也有不完美的地方。
在使用的過程當中,遇到了一些莫名其妙或因姿式不對出現的error,在這裏記錄下來。也算是前人栽樹,後人乘涼。vue

設置別名 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";
複製代碼

編譯後終端報錯以下: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


eslint rule import/extensions引發的錯誤提示

import/extensions 介紹web

當設置了以下規則時:

/* .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.6vue-cli

[eslint] Missing file extension for "@/components/HelloWorld"
複製代碼

10.17

這個緣由找了半天,都沒找到。最後鬼使神差的發現原來是項目的路徑太深致使的。真是太過奇葩!json

相關文章
相關標籤/搜索