VSCode Intellisense 不适用于 webpack + 别名

VSCode Intellisense does not work with webpack + alias

我有一个使用 babel 别名的项目:

resolve: {
  alias: {
      vue: 'vue/dist/vue.js',
      '@cmp': resolve('src/components'),
      '@service': resolve('src/services'),
      '@scss': resolve('src/assets/styles'),
  }
}

和一个组件:

import someService from '@service/some'

并且 Intellisense 不起作用。 与:

import someService from '../../../../service/some'

确实如此。

有什么建议吗?

尝试创建 jsconfig.json 并配置 paths 编译器选项

{
  "compilerOptions": {
    "baseUrl": ".",
    "module": "commonjs",
    "paths": {
      "@cmp/*": ["./src/components/*"]
    }
  }
}

您可以找到有关 paths 和其他编译器选项的更多信息 here

按照建议 here 这对我有用(我希望 @/ 解析为 ./src/):

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

最小版本,但我也会离开 exclude:

{
  "compilerOptions": {
    "baseUrl": "./",
    "paths": {
      "@/*": ["src/*"]
    }
  },
}

补充一下 Matt 的回答,在 TypeScript 项目中您不需要创建 jsconfig.json 文件,只需将其添加到您的 tsconfig.json 文件和 vscode捡起来。

{
    "compilerOptions": {
    ...
        "paths": {
            "@MyAlias/*": ["./myDirectrory/*"]
        }
    }
}