typescript compiler(tsc)命令不能与tsconfig一起使用

bns*_*saa 14 typescript tsc

我全局安装了typescript(npm install typescript -g)

然后创建了一个文件夹,运行 npm --init,然后npm intall typescript --save-dev- 它安装了typescript@2.1.4

在文件夹中,我创建了'helloworld.ts`

var msg = 'Hello World';
console.log (msg);
Run Code Online (Sandbox Code Playgroud)

使用文件选项运行tsc命令 - tsc helloworld.ts并将其编译为helloworld.js.

接下来,我想使用tsconfig.json,所以我运行tsc --init- 这不起作用,说Unknown option 'init'

我说没问题,让我尝试手动添加tsconfig.json并将其添加到文件夹root中,如下所示:

{
    "compilerOptions": {
        "target": "es5"
    },
    "files": [
        "helloworld.ts"
    ]
}
Run Code Online (Sandbox Code Playgroud)

tsc在命令提示符下运行,但它不起作用,并输出如何使用tsc的语法,示例和选项Syntax: tsc [options] [file] ...

怎么了?

where tsc 给出以下:

C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0\tsc.exe
C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0\tsc.js
C:\Users\Kap\AppData\Roaming\npm\tsc
C:\Users\Kap\AppData\Roaming\npm\tsc.cmd
Run Code Online (Sandbox Code Playgroud)

Dan*_*Dan 21

这就是问题:

C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0\tsc.exe
C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0\tsc.js
Run Code Online (Sandbox Code Playgroud)

uninstall-update-remove-get-rid-off:Visual Studio过时的扩展...

或将其从路径中删除......

或重命名文件夹以确认问题...然后核对它:)

检查如果你这样做会发生什么:

md x
cd x
tsc --init
npm init -y
npm link typescript
echo console.log('it works') > index.ts
tsc -p .
node .
Run Code Online (Sandbox Code Playgroud)

应该输出

it works
Run Code Online (Sandbox Code Playgroud)

也.如果
你依赖的模块,我需要在项目本地安装typescript脚,取决于
你需要在"你的"代码中使用编译器功能,
你需要使用与全局安装不同的版本

到init:

tsc --init
Run Code Online (Sandbox Code Playgroud)

编译

'项目'(基于tsconfig.json):

tsc -p .
Run Code Online (Sandbox Code Playgroud)

哪里.在这里意味着

编译'其他'项目

tsc -p other/tsconfig.json
Run Code Online (Sandbox Code Playgroud)

更多帮助

  • 对于那些可能遇到相同问题的人,这对我有用 - 从“Windows - 添加/删除程序”中删除/卸载“Visual Studio 的 Typescript 工具”。然后从上面提到的Dan PATH env变量中删除,卸载typescript `npm uninstall typescript -g`,重新启动系统并重新安装typescript t `npm install typescript -g`。在此 tsc 一切正常后 (2认同)

Dan*_*non 21

我遇到的问题是我没有收到任何错误,但也没有得到任何输出。

我意识到"noEmit": true我的 tsconfig.json 文件中有。

当我删除它时,它按预期工作:)


Jas*_*les 5

每次我在谷歌搜索“typescript tsc no output”之后来到这里都是出于同样的原因。因为这种情况肯定发生过不止一次,所以我也会把我的答案扔到擂台上。

每次这种情况发生在我身上,都是因为 TypeScript 配置了composite: true并且我删除了输出目录(如outDir中设置的目录tsconfig),但没有删除tsconfig.tsbuildinfo文件。

这导致 TypeScript 假设输出不需要更新,因为文件上的时间戳tsbuildinfo表明上次构建是在修改所有文件之后。