8

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

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

包.json

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

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

4

1 回答 1

3

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

.eslintrc.js

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

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

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

tsconfig.json

"compilerOptions": {
  "baseUrl": ".",
  "paths": [
    "@/*" : [
      "src/*"
    ]
  ]
}
于 2020-01-08T12:02:35.080 回答