29

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

4

3 回答 3

28

也只是补充。

我正在使用 Visual Studio 2013 运行构建来修复它时遇到了同样的错误。我转到我的项目的属性,然后转到“TypeScript Build”部分,那里有选择模块系统的选项,我选择了 AMD,它没有。

于 2014-11-26T16:32:19.500 回答
26

如前所述,使用模块标志编译,例如,如果您的文件被调用myfile.ts

tsc myfile.ts --module "commonjs" 

原因是从 TSC 0.9.1 开始,默认模块选项是 amd(例如 requirejs),这是客户端 javascript 代码最常见的模块模式。因此,您需要指定模块选项来获取 commonjs 代码,这是服务器端 javascript 代码(例如 nodejs)最常见的模块模式,这就是编译器提示您明确目标的原因:) 当您出现此提示时import在外部模块上做一个。

于 2013-08-13T14:22:01.173 回答
0

GraphQL 示例遇到了类似的问题,我在其中使用了 create-react-app myapp --typescript。

TS1208

GraphQL 编译器错误

能够像这样修复它:

在此处输入图像描述

于 2019-01-03T18:11:37.087 回答