模块别名包的智能感知

Intellisense for module-alias Package

我正在使用这个 npm 模块 (module-alias) https://www.npmjs.com/package/module-alias 在我的 Node 项目中。

要使用此包,您必须在 package.json 文件中设置路径别名。

但是,使用这个包有一个缺点,即智能感知不再起作用。

我的问题是如何使用这些路径别名启用智能感知?

问题是您没有在 linter 的任何地方注册这些别名。我一般建议在这里使用 ESLint(即使你使用 TypeScript,因为 TSLint 将被停用,取而代之的是 ESLint)。我的示例也将包括 TypeScript 结尾。如果您确实想让它只适用于 JavaScript,您可以跳过 eslint 中的 .ts .tsx 扩展)所以要使智能感知工作,请在

中执行此操作

.eslintrc.js

settings: {
  "import/resolver": {
    alias : {
      map: [
        ["@","./src"]
      ],
      extensions: [".js", ".jsx", ".ts", ".tsx"],
    },
  }
},

请注意,在这种情况下,您将需要 import Plugin 用于 ESLint。如果您还没有安装它。

如果您使用的是 TypeScript,您还必须让编译器知道该别名。所以把这个添加到你的

tsconfig.json

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