无法编译任何TS + node.js项目,包括样本http://typescript.codeplex.com/sourcecontrol/latest#samples/imageboard/README.txt
中列出的项目始终收到以下错误:
错误TS5037:除非提供了“--module”标志,否则无法编译外部模块。
编译器版本:0.9.1.0
例如,项目只包含单个文件app.ts:
///<reference path="./node_definitions/node.d.ts" /
import http = require("http")
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(1337, 'localhost');
console.log('Server running at http://localhost:1337/');
答案 0 :(得分:28)
也只是添加。
我正在使用Visual Studio 2013我运行构建时遇到同样的错误来修复它。我去了我的项目的属性,然后到“TypeScript构建”部分,可以选择一个模块系统我选择了AMD它没有。
答案 1 :(得分:26)
如上所述,使用模块标志进行编译,例如:如果您的文件被称为myfile.ts
:
tsc myfile.ts --module "commonjs"
原因是从TSC 0.9.1开始,默认模块选项是amd(例如requirejs),这是客户端javascript代码的最常见模块模式。所以,你需要指定模块选项来获取commonjs代码,这是服务器端javascript代码(例如nodejs)最常见的模块模式,这就是为什么编译器会提示你明确你的目标:)这个提示发生在你的时候在外部模块上执行import
。
答案 2 :(得分:0)