首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeScript编译器(tsc)无法识别导入别名

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

Stack Overflow用户
提问于 2019-04-03 12:13:42
回答 2查看 1.7K关注 0票数 3

首先也是最重要的,我准备了this sample GitHub repository作为重现我的问题的最低要求。

我遇到了一个问题,tsc不能将我的TypeScript编译成JavaScript。

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

代码语言:javascript
复制
ts-node -r tsconfig-paths/register main

但是,令我困惑的是,当我运行以下命令时:

代码语言:javascript
复制
tsc --outDir out main

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

代码语言:javascript
复制
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/.';
                   ~~~~~~~~

这里我漏掉了什么?我认为没有任何“助手”(就像tsconfig-pathsts-node所做的那样),tsc应该可以很好地工作。

EN

回答 2

Stack Overflow用户

发布于 2019-04-03 12:38:59

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

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

票数 0
EN

Stack Overflow用户

发布于 2019-08-09 19:08:29

我想你的问题出在版本上,试着把你的typescript更新到3.4.5+tsconfig-paths到最新版本。将NPM脚本属性添加到package.json,这样tsc -p tsconfig.json发出的所有调用都将解析为NPM包,而不是全局

代码语言:javascript
复制
"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:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55486970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档