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

Posted

技术标签:

【中文标题】如何为从 .vue 中的别名导入的模块方法获取智能感知【英文标题】:how to get intellisense for methods of modules which are imported from an alias in .vue 【发布时间】:2019-03-26 02:52:15 【问题描述】:

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


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

它在 .js 文件中有效,但在 .vue 文件中无效。 有人知道怎么解决吗?

在 .js 中有效

不适用于 .vue

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

我和你的一样尝试过,它在 .vue 中有效,但我发现你的解决方案在 .js 中无效。这是我的姿势不对吗? 哎呀,我发现你的解决方案确实解决了我的问题,但是需要 jsconfig.json 否则它不起作用 啊,没错!我的错!我试图删除 jsconfig.json 并检查了我的 vue 文件,它仍然有效,但我什至从不费心查看我的 js 文件。对不起!所以只是不要删除 jsconfig,它适用于两者! 非常感谢。我还有一个问题,如何立即刷新 eslint 的配置。刚刚,过了这么久才生效。 对我来说是立竿见影的!而且我认为只要你的 eslintrc 中没有错误(当然你需要保存)。但是我使用 vscode 的重新加载窗口来处理不会自动刷新的东西(F1,输入“REL”.. 你会找到它)我为它绑定了一个键。主要是因为我想确定事情是否已经传播。

以上是关于如何为从 .vue 中的别名导入的模块方法获取智能感知的主要内容,如果未能解决你的问题,请参考以下文章

如何为属性定义别名

如何为 PL/SQL 中的 dbms 输出打印的值提供别名?

如何为 mercurial 用户创建别名?

如何为 Vue Apollo 导入 Apollo Client 3?

如何为 MySQL 中的字段或列设置别名?

如何为 Spark SQL 中的posexplode 列提供别名?