宗地别名未在tslint中注册

时间:2019-12-18 11:26:40

标签: typescript parceljs

我正在使用parcel-bundler与TypeScript进行交互,并且已经在package.json中设置了一些别名。

这是我的tsconfig.json

{
  "compilerOptions": {
    "allowJs": true,
    "jsx": "react",
    "baseUrl": ".",
    "paths": {
      "~*": ["./src/*"]
    }
  },
  "include": ["./declarations.d.ts", "global.d.ts"]
}

这是我的别名

"alias": {
  "#types": "./src/types",
  "#App": "./src/App",
  "#helpers": "./src/helpers",
  "#shared": "./src/shared"
}

当我使用这些别名导入任何东西

import Button from "#shared/Button";

它强调了他们,在Vscode中说Cannot find module #shared/Button

但是,该应用程序运行良好。那么我该如何告诉tslint,包裹中存在别名导入?

1 个答案:

答案 0 :(得分:0)

首先,请删除package.json中的所有别名,以免造成混淆。

然后将其安装为开发依赖项:

npm install --save-dev babel-plugin-module-resolver

将波浪号更改为哈希:

{
  "compilerOptions": {
    "allowJs": true,
    "jsx": "react",
    "baseUrl": ".",
    "paths": {
      "#*": ["./src/*"]
    }
  },
  "include": ["./declarations.d.ts", "global.d.ts"]
}

将插件添加到.babelrc

{
  "plugins": [
    ["module-resolver", {
      "root": ["."],
      "alias": {
        "#shared": "./src/shared"
      }
   }]
 ]
}

注意babelrc中的别名无法连接目录。它必须是完整路径。