如何获得从 .vue 中的别名导入的模块方法的智能感知
how to get intellisense for methods of modules which are imported from an alias in .vue
在.vue和.js中,开发时可以享受到vscode的智能感知。
但是我发现当我使用别名时它不再起作用了。
所以我在博客上搜索了一段时间,找到了一个解决方案,就是配置一个'jsconfig.json'如下。
{
"compilerOptions": {
"target": "ES6",
"module": "commonjs",
"allowSyntheticDefaultImports": true,
"baseUrl": "./",
"paths": {
"@/*": [
"src/*"
]
}
}
}
它在 .js 文件中有效,但在 .vue 文件中无效。
有谁知道怎么解决吗?
在 .js 中有效
不适用于 .vue
对于 vue-cli,别名是在 webpack-config 中定义的(因为@vue/cli 在后台使用 webpack)。因此,而不是 jsconfig.json (删除它!只是做它!),我会:
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中,开发时可以享受到vscode的智能感知。 但是我发现当我使用别名时它不再起作用了。 所以我在博客上搜索了一段时间,找到了一个解决方案,就是配置一个'jsconfig.json'如下。
{
"compilerOptions": {
"target": "ES6",
"module": "commonjs",
"allowSyntheticDefaultImports": true,
"baseUrl": "./",
"paths": {
"@/*": [
"src/*"
]
}
}
}
它在 .js 文件中有效,但在 .vue 文件中无效。 有谁知道怎么解决吗?
在 .js 中有效
不适用于 .vue
对于 vue-cli,别名是在 webpack-config 中定义的(因为@vue/cli 在后台使用 webpack)。因此,而不是 jsconfig.json (删除它!只是做它!),我会:
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"],