2013-08-13 8 views
28

Nie można skompilować żadnego TS + node.js projektu, w tym wymienione w próbkach http://typescript.codeplex.com/sourcecontrol/latest#samples/imageboard/README.txtmaszynopis błąd kompilacji TS5037: Nie można skompilować modułów zewnętrznych, chyba że flaga „--module” jest

Zawsze pojawia się następujący błąd:

error TS5037: Nie można skompilować modułów zewnętrznych, chyba że podano flagę "--module". Wersja

kompilator: 0.9.1.0

Na przykład, projekt składa się z tylko pojedynczych app.ts plików:


///<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/'); 

Odpowiedz

25

Jak wspomniano kompilacji z flagą, na przykład moduł Jeśli plik nazywa myfile.ts:

tsc myfile.ts --module "commonjs" 

Powodem jest to, że począwszy od TSC 0.9.1 opcję domyślnego modułu jest amd (np requirejs), która jest najczęstszą moduł wzór na stronie klienta kodu JavaScript. Tak więc musisz określić opcję modułu, aby uzyskać kod commonjs, który jest najczęstszym wzorcem modułu dla kodu JavaScript po stronie serwera (np. Nodejs), dlatego kompilator prosi użytkownika o wyraźne podanie celu :) Ta zachęta pojawia się, gdy wykonaj import na module zewnętrznym.

+1

Wielkie dzięki, to się udało! –

28

Także po to, aby dodać.

Używam Visual Studio 2013 Wystąpił ten sam błąd podczas uruchamiania kompilacji, aby go naprawić. Poszedłem do właściwości mojego projektu, a następnie do sekcji "Konstrukcja TypeScript" w opcji wybrałem system modułowy, który wybrałem AMD, którego nie ma.

+1

Miałem też "Brak" i działało idealnie, dziękuję. Jeszcze jedną rzeczą, którą chcę dodać, jest to, że nadal możesz popełnić inny błąd, jeśli nie znasz Modułu ze swojego modułu zewnętrznego. Coś takiego: 'deklaruj moduł 'kątowy' { var kątowy: ng.IAngularStatyczny; eksport = kątowy; } ' – parliament

+0

Dzięki za drugą odpowiedź, szukałem poprawki kilka godzin ... – Jerome2606

+1

Zrobiłem to i nadal dostaję błąd. Zaczyna się zastanawiać, czy to błąd VS2015, teraz. –