vue.js - 如何获取从 .vue 中的别名导入的模块方法的智能感知

标签 vue.js visual-studio-code vuejs2 vue-cli vue-cli-3

在.vue和.js中,我可以在开发时享受vscode的智能感知。 但我发现当我使用别名时它不再起作用了。 于是我在博客上搜索了一段时间,找到了一个解决方案,就是配置一个'jsconfig.json'如下。

{
  "compilerOptions": {
    "target": "ES6",
    "module": "commonjs",
    "allowSyntheticDefaultImports": true,
    "baseUrl": "./",
    "paths": {
      "@/*": [
        "src/*"
      ]
    }
  }
}

它在 .js 文件中有效,但在 .vue 文件中无效。 有谁知道如何解决吗?

在 .js 中工作

enter image description here

不适用于 .vue enter image description here

最佳答案

对于 vue-cli,别名是在 webpack-config 中定义的(因为 @vue/cli 在底层使用了 webpack)。因此,我不会使用 jsconfig.json (delete it! just do it!) ,而是:

1:安装 eslint 的 webpack 解析器:

npm i eslint-import-resolver-webpack

2:从 .eslintrc.js

引用插件
"settings": {
  "import/resolver": "webpack"
},

完成!

这是我完整的.eslintrc.js,只是为了彻底:

module.exports = {
  "settings": {
    "import/resolver": "webpack"
  },
  parserOptions: {
    parser: "babel-eslint"
  },
  extends: [
    "eslint:recommended",
    "plugin:vue/recommended"
  ],
  "env": {
    "browser": true,
    "node": true
  },
  rules: {}
}

如果仍然存在任何问题,我会检查 vscode settings.json 中的 eslint 设置:

"eslint.enable": true,
"eslint.provideLintTask": true,
"eslint.workingDirectories": ["src"],
"eslint.validate": ["javascript","javascriptreact","vue"],

关于vue.js - 如何获取从 .vue 中的别名导入的模块方法的智能感知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52922417/

相关文章:

javascript - 选择元素的选项属性在 vue.js 2.0 中不起作用

vue.js - Nuxt 生成动态路由路径

node.js - 如何使用脚本导航 <a> 标记中的链接?

vue.js - 为什么vue组件数据一定要是函数?

vue.js - 看这个。 $ parent 如果被调用,它会返回自己吗?

javascript - Vue2 中的条件 Prop

vuejs2 - Vuejs 检测更改并更新页面而无需用户参与

visual-studio-code - VS 代码片段将变量解释为字符串

c++ - 如何配置 VS Code 来编译/调试 C++?

editor - Visual Studio Code - 自定义单词分隔符