2017-01-09 1 views
1

Je veux compiler le projet Angular 2 en tant que module commonjs.Compilation angulaire 2 comme communjs

Je possède ce tsconfig.json:

{ 
    "compilerOptions": { 
    "declaration": true, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "mapRoot": "./", 
    "module": "commonjs", 
    "moduleResolution": "node", 
    "outDir": "../dist/lib", 
    "sourceMap": true, 
    "target": "es5", 
    "removeComments": true 
    } 
} 

J'utilise ntsc et je suis arrivé ce genre d'erreurs:

node_modules/@angular/common/src/directives/ng_class.d.ts(46,34): error TS2304: Cannot find name 'Set'. 
node_modules/@angular/common/src/pipes/async_pipe.d.ts(44,38): error TS2304: Cannot find name 'Promise'. 
node_modules/@angular/compiler/src/aot/compiler.d.ts(32,38): error TS2304: Cannot find name 'Promise'. 
node_modules/@angular/compiler/src/aot/compiler.d.ts(44,32): error TS2304: Cannot find name 'Map'. 

Je npm la version 4.0.5, nodev7.3.0 et ntscVersion 2.1.0

Répondre

1

Pour transpiling vous ES5 devez ajouter la référence suivante dans votre fichier principal ts:

///<reference path="node_modules/angular2/typings/browser.d.ts"/>

+0

J'ai un problème similaire avec un projet généré par Angular-CLI. J'utilise Eclipse et les plugins de [Angelo Zerr] (https://github.com/angelozerr). Les commandes "ng build" et "ng serve" fonctionnent parfaitement, mais tsc me montre des erreurs sous node_modules. Le chemin de votre solution (node_modules/angular2/typings/browser.d.ts) n'existe pas, il s'agit de l'ancien chemin d'accès de angular2 beta. Comment puis-je résoudre ceci dans la version actuelle d'Angular? – Springrbua

1

Vous vouloir target: "es6", ces classes manquantes ne sont pas disponibles dans ECMAScript 5

+0

Mais si j'utilise ' « ES6 »' comme 'target', je dois aussi compiler de ES6 à ES5 –

+0

Je ne sais pas comment le code es 6 sera transmis à es 5 et fonctionne toujours. Mais si vous voulez utiliser es6 fonctionnalités dans le code es5, vous devriez vérifier babel qui vous permet de le faire – Dummy

+0

J'ai suivi cet article: http://blog.angular-university.io/how-to-create-an-angular- 2-library-and-comment-consommer-it-jspm-vs-webpack/ –