模块别名包的智能感知

flo*_*olu 8 intellisense node.js npm drupal-path-aliases module-alias

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

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

包.json

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

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

rel*_*one 3

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

.eslintrc.js

settings: {
  "import/resolver": {
    alias : {
      map: [
        ["@","./src"]
      ],
      extensions: [".js", ".jsx", ".ts", ".tsx"],
    },
  }
},
Run Code Online (Sandbox Code Playgroud)

请注意,在这种情况下,您将需要ESLint 的导入插件。如果您还没有安装它。

如果您使用 TypeScript,您还必须让编译器知道该别名。所以将其添加到您的

tsconfig.json

"compilerOptions": {
  "baseUrl": ".",
  "paths": [
    "@/*" : [
      "src/*"
    ]
  ]
}
Run Code Online (Sandbox Code Playgroud)