2016-01-08 13 views
6

in NodeJS Typoskript App definiert ich auf NodeJS App in Typoskript arbeite, in denen ich server.js als Brache eine Datei geschrieben haben:define nicht

import express = require('express'); 
import mongoose = require('mongoose'); 


let app=express(); 
app.set('port', process.env.PORT || 3000); // Set port to 3000 or the provided PORT variable 


/** 
* Start app 
*/ 
app.listen(app.get('port'), function() { 
    console.log(`App listening on port ${app.get('port')}!`); 
}); 

ich den Zug benutzen muss es traspile die js erzeugen Datei als

define(["require", "exports", 'express'], function (require, exports, express) { 
    var app = express(); 
    app.set('port', process.env.PORT || 3000); // Set port to 3000 or the provided PORT variable 
    /** 
    * Start app 
    */ 
    app.listen(app.get('port'), function() { 
     console.log("App listening on port " + app.get('port') + "!"); 
    }); 
}); 

//# sourceMappingURL=../map/server.js.map 

, aber wenn ich diese Datei ausgeführt ist immer Fehler definieren, nicht definieren.

Bitte korrigieren Sie mich, wenn ich einen Fehler mache.

enter image description here

Antwort

7

Wenn Sie eine Anwendung schreiben, die rein in Node.js ausgeführt wird, sollten Sie "Commonjs" Module, nicht AMD-Module verwenden, wenn Sie kompilieren Ihre TypeScript-Dateien.

Wenn Sie eine Anwendung schreiben, die sowohl in Node.js als auch im Browser ausgeführt wird, sollten Sie beim Kompilieren Ihrer TypeScript-Dateien "umd" -Module und keine AMD-Module verwenden.

Sie müssen also Ihr Konfigurationsobjekt ändern, das Sie an den Gulp TypeScript-Compiler übergeben, um { module: "commonjs" } oder { module: "umd" } zu verwenden.

1

Ich denke, Sie brauchen eine amd-loader hier, Sie einmal dann require("amd-loader"); in Ihrem Projekt installiert.

npm install amd-loader 
require("amd-loader"); 

Unten ist der Link:

https://github.com/ajaxorg/node-amd-loader

+0

Ich habe ein Modul, das definiert ist, aber noch nicht geladen ist (wie durch seine "geladene" Eigenschaft angezeigt. Wie warte ich auf das Laden? – phreed