我想用angular2依赖项创建一个js文件,但不包括应用程序js文件。
因为在我对ts文件(例如,我的clientList.component.ts)所做的每一次更改中,我都必须重新构建包。
这是我的任务:
gulp.task('bundle:angular', function () {
var builder = new Builder('', './systemjs.config.js');
return builder
.buildStatic('./wwwroot/ngApp/main.js', './wwwroot/js/libs/angular.bundle.js',
{ minify: true, sourceMaps: true})
.then(function (output) {
console.log('Build complete');
})
.catch(function (err) {
console.log('Build error');
});
});这是我的systemjs.config.js
(function (global) {
var map = {
'app': './wwwroot/ngApp',
'rxjs': './wwwroot/js/libs/rxjs',
'@angular': './wwwroot/js/libs/@angular'
};
var packages = {
'app': { main: 'main.js', defaultExtension: 'js' },
'rxjs': { defaultExtension: 'js' }
};
var packageNames = [
'@angular/common',
'@angular/compiler',
'@angular/core',
'@angular/http',
'@angular/platform-browser',
'@angular/platform-browser-dynamic',
'@angular/router',
'@angular/router-deprecated',
'@angular/testing',
'@angular/upgrade'
];
packageNames.forEach(function (pkgName) {
packages[pkgName] = { main: 'index.js', defaultExtension: 'js' };
});
var config = {
map: map,
packages: packages
}
if (global.filterSystemConfig) { global.filterSystemConfig(config); }
System.config(config);
})(this);谢谢
发布于 2016-05-17 09:33:00
这样就行了,
gulp.task('bundle:angular', function () {
var builder = new Builder('', './systemjs.config.js');
return builder
.buildStatic('./wwwroot/ngApp/main.js - @angular', './wwwroot/js/libs/angular.bundle.js',
{ minify: true, sourceMaps: true})
.then(function (output) {
console.log('Build complete');
})
.catch(function (err) {
console.log('Build error');
});
});发布于 2016-05-17 09:23:08
您正在对包含所有依赖项的应用程序进行静态绑定(即可以由<script>直接加载的包),因此是棱角分明的。要将您的应用程序从角(或任何其他库)中分离出来,您必须创建一个require所有依赖项的文件来构建供应商包。应用程序包必须是应用程序及其依赖项与供应商包之间的区别。
https://github.com/systemjs/builder#example---common-bundles
但是,如果您想要的是在更改源文件后的周转时间,我建议您看看webpack。它有插件来创建增量包,并且它的webpack开发服务器可以非常快地重建已经改变的内容(在我的设置中大约是2秒)。我不认为您可以获得类似的快速周转时间使用SystemJS。
https://stackoverflow.com/questions/37271397
复制相似问题