【问题标题】:How to make VSCode resolve "@" in imports如何让 VSCode 在导入中解析“@”
【发布时间】:2019-11-25 11:45:42
【问题描述】:

我在一个使用 Webpack 的 Vue.js 项目中工作。许多导入使用@ 作为src 目录的别名。如何配置 VSCode 以解析别名并使智能感知与这些导入一起工作?

我在网上的很多地方都找到了如何在 VSCode 中设置别名,使用 jsconfig.jsontsconfig.json。我已尝试在这两个文件中进行配置,但似乎没有任何效果。

我的 jsconfig.json:

{
  "compilerOptions": {
    "target": "es6",
    "allowSyntheticDefaultImports": false,
    "baseUrl": ".",
    "paths": {
      "@/*": ["./src/*"]
    }
  },
  "exclude": ["node_modules", "dist"]
}

我希望 VSCode 能够解析路径中的别名,从而使智能感知和窥视定义工作。

【问题讨论】:

    标签: javascript vue.js webpack visual-studio-code


    【解决方案1】:

    在我当前的项目中,我在根目录中有一个jsconfig.json,其中包含:

    {
      "compilerOptions": {
        "target": "es2017",
        "allowSyntheticDefaultImports": false,
        "baseUrl": "./",
        "paths": {
          "@/*": ["src/*"],
        }
      },
      "exclude": ["node_modules", "dist", "docs"]
    }
    

    它对我有用。

    我不知道 moduleResolution 在你的 conf 中到底做了什么,而我的 baseUrl 是我的根文件夹。

    vs代码的相关文档:https://code.visualstudio.com/docs/languages/jsconfig#_using-webpack-aliases

    试试看效果好不好?

    【讨论】:

    • 是的,这就是我使用 @material-ui 在 create-react-app 中工作的方式...基本上所有这些项目都在路径对象中,一切正常。
    • FWIW,moduleResolution 是 TS 的东西。我不确定它在 jsconfig.json 中是否合法
    • 我只是把moduleResolution扔在那里尝试解决,但没有任何改变
    • 我尝试将目标更改为 es2017 并从 baseUrl 中删除 src,但仍然无法正常工作。我什至用不同的项目和另一台 PC 进行了测试,但没有成功
    • @MathieuD。我不能,因为它是一个私有存储库
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-01
    • 2021-07-02
    • 2023-01-08
    • 2018-07-20
    • 2022-10-24
    • 2016-05-17
    • 2022-12-01
    相关资源
    最近更新 更多