utiliser le plugin gulp-inline-ng2-template inline CSS et HTML, avant de compiler avec ngc
et les offres groupées avec rollup:
Compiler avec NGC
:
gulp.task('compile:aot', function (cb) {
exec('"node_modules\\.bin\\ngc" -p tsconfig.prod.json', function (err, stdout, stderr) {
console.log(stdout);
console.log(stderr);
cb(err);
});
});
Compiler au format du module ES6 (pré-requis pour l'arbre -shaking par cumul):
gulp.task('compile:es6', function() {
return gulp.src(['./src/**/*.ts'])
.pipe(inlineNg2Template({ base: '/src', useRelativePaths:true }))
.pipe(tsc({
"target": "es5",
"module": "es6",
"moduleResolution": "node",
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"lib": ["es6", "dom"]
}))
.pipe(gulp.dest('./dist/src'));
});
Bundle avec cumul:
gulp.task('rollup:app', function(){
return rollup.rollup({
entry: 'dist/src/main.aot.js',
onwarn: function (warning) {
// Skip certain warnings
// should intercept ... but doesn't in some rollup versions
if (warning.code === 'THIS_IS_UNDEFINED') { return; }
// intercepts in some rollup versions
if (warning.message.indexOf("The 'this' keyword is equivalent to 'undefined'") > -1) { return; }
// console.warn everything else
console.warn(warning.message);
},
plugins: [
nodeResolve({
jsnext: true,
module: true
}),
commonjs({
include: 'node_modules/rxjs/**',
})
]
})
.then(function(bundle) {
bundle.write({
format: "iife",
dest: "dist/app.bundle.js",
sourceMap: true
});
});
});
Demo Starter App
Il a travaillé !! Je vous remercie. Je ne sais jamais qu'il existe un plugin gulp-inline-ng2-template. Génial!! – iamhumble
Une question. Comme nous utilisons NGC, nous n'aurons pas besoin de plugins pour la compilation, juste. – iamhumble
ngc est utilisé pour générer les usines nécessaires à la compilation statique. tsc est toujours requis une fois que les fabriques ont été créées pour être compilées au format es6 avant le regroupement et l'arborescence par rollup. Vous pouvez être en mesure de sortir à ES6 en utilisant ngc seul - Je pense que cela devrait fonctionner. – pixelbits