Подтвердить что ты не робот

TypeScript ошибка компиляции TS5037: невозможно компилировать внешние модули, если не указан флаг '-module'

Невозможно скомпилировать любой проект 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/');

4b9b3361

Ответ 1

Как упоминалось, компилируется с флагом модуля, например. если ваш файл называется myfile.ts:

tsc myfile.ts --module "commonjs" 

Причина в том, что начиная с TSC 0.9.1 опция модуля по умолчанию - amd (например, requirejs), которая является наиболее распространенным шаблоном модуля для кода javascript на стороне клиента. Таким образом, вам нужно указать опцию модуля, чтобы получить код commonjs, который является наиболее распространенным шаблоном модуля для кода javascript на стороне сервера (например, nodejs), поэтому компилятор предлагает вам быть явным о вашей цели:) Это приглашение возникает, когда вы выполните import на внешнем модуле.

Ответ 2

Также просто добавить.

Я использую Visual Studio 2013. Я получил ту же ошибку, что и для сборки. Я перешел к свойствам моего проекта, а затем в раздел "TypeScript Build" появилась возможность выбрать систему модулей, на которую я выбрал AMD, она не была.