使用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

相关文章
相关标签/搜索