我刚刚下载了新的Visual Studio Code,第一印象是非常积极的。对于打字稿,智能感知功能非常出色。
但是,存在一个奇怪的问题:VS Code似乎无法编译打字稿模块。
这段代码:
/// <reference path="../definitions/react.d.ts"/>
import React = require("react");
可以在cmd上完美编译
tsc --module commonjs main.ts
但是在VS Code中,第二行以红色突出显示,编辑器抱怨:
除非提供“ -module”标志,否则无法编译外部模块
当然,任何使用模块的打字稿代码都必须使用该标志进行编译。但是,如果IDE知道模块的用法,为什么不设置标志?不带模块的打字稿代码可以在保存时编译,没有问题。
我想我缺少一些编译器设置配置文件。有这样的事吗?在哪里可以找到它?
我添加了tsconfig.json文件:
{
"compilerOptions": {
"target": "ES5",
"module": "commonjs",
"sourceMap": true
}
}
这实际上消除了错误。不幸的是,IDE不再编译我的代码。起初我以为config.json只会使错误消息静音,但它的作用还不止于此。Intellisense现在可以在示例文件中使用。如果我键入,React
则自动完成功能将被触发,并且由于显示了有意义的建议,因此显然知道React。
现在,VS Code为什么不将文件编译为js?我试图配置任务运行器来完成这项工作,但是它似乎不起作用:
{
"version": "0.1.0",
// The command is tsc.
"command": "tsc",
// Show the output window only if unrecognized errors occur.
"showOutput": "silent",
// Under windows use tsc.exe. This ensures we don't need a shell.
"windows": {
"command": "tsc.exe"
},
// args is the HelloWorld program to compile.
"args": ["--module commonjs","${file}"],
// use the standard tsc problem matcher to find compile problems
// in the output.
"problemMatcher": "$tsc"
}
如果保存文件,则不会发生任何事情,即使我明确运行构建任务,也不会响应。我编辑的任务的名称是“ tsc”,我也尝试运行它。没有效果。然后,我将参数更改为"args": ["--module commonjs","main.ts"]
,无响应。
任务运行程序似乎起作用的唯一方法是使用以下两个设置:
"args": ["${file}"], "isShellCommand": true,
以下是输出:
"args": ["-p"],
"args": ["-p", "."],
错误TS5023:未知的编译器选项'p'。
"args": ["."],
错误TS6053:找不到文件“ .ts”。
我今天也面临着同样的问题。我点击了此链接http://blogs.msdn.com/b/typescript/archive/2015/04/30/using-typescript-in-visual-studio-code.aspx在完成所有设置步骤之后,我在命令行,它开始生成JavaScript文件
npm install -g typescript
我们需要确保已经安装了node和npm并可以通过命令行访问。我发现它不起作用的原因是因为tasks.json
我们指定了以下选项
"command": "tsc"
"isShellCommand": true,
因此,Visual Studio代码尝试tsc
在命令行上运行命令,但未找到tsc
。因此,使用npm全局安装Typescript解决了该问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句