TypeScript 编译器 (tsc) 无法识别导入别名



首先,我准备了此示例 GitHub 存储库作为重现我的问题的最低限度。

我遇到了tsc无法将我的TypeScript编译为JavaScript的问题。

我正在使用导入别名,并且能够使用如下所示的ts-nodetsconfig-paths直接运行我的应用程序:

ts-node -r tsconfig-paths/register main

但是,对我来说令人困惑的是,当我运行以下内容时:

tsc --outDir out main

我看到编译器TS2307错误,抱怨它找不到我的导入别名定义的模块:

main.ts:1:24 - error TS2307: Cannot find module '@utils/.'.
1 import * as utils from '@utils/.';
                     ~~~~~~~~~~
main.ts:2:22 - error TS2307: Cannot find module '@cmd/.'.
2 import * as cmd from '@cmd/.';
                   ~~~~~~~~

我在这里错过了什么?我认为tsc应该在没有任何"助手"的情况下正常工作(就像tsconfig-pathsts-node所做的那样(

尝试将您的 tsconfig.json 传递给tsc

tsc --config path/to/tsconfig.json --outDir out main

我认为您的问题与版本有关,请尝试将typescript更新为3.4.5+并将tsconfig-paths更新到最新版本。将 NPM 脚本属性添加到 package.json,这样tsc -p tsconfig.json进行的所有调用都将解析为 NPM 包而不是全局

"scripts": {
    "build": "tsc -v && tsc -p tsconfig.json",
    "prestart": "rimraf dist && npm run build",
    "start:project": "npm run prestart && node dist/main.js",
}

然后通过执行以下命令调用脚本:npm run start:project

相关内容

  • 没有找到相关文章

最新更新