TypeScript编译错误TS5037:除非提供了“--module”标志,否则无法编译外部模块

时间:2013-08-13 13:36:07

标签: compiler-construction typescript

无法编译任何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/');

3 个答案:

答案 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)

在GraphQL示例中,我曾使用过create-react-app myapp --typescript。

TS1208

GraphQL compiler error

能够像这样修复它:

enter image description here