Javascript 打包并运行Angular2RC.0,就像之前的测试版聚合模块一样
自从我升级到Angular2 RC.0之后,所有模块现在都单独加载(应用程序加载时有600个HTTP请求),这非常长,几乎无法使用。beta17一次加载所有模块(或者每个核心至少加载一个文件、http、rxjs…) 我遵循了beta版和RC版的官方快速入门指南Javascript 打包并运行Angular2RC.0,就像之前的测试版聚合模块一样,javascript,angular,Javascript,Angular,自从我升级到Angular2 RC.0之后,所有模块现在都单独加载(应用程序加载时有600个HTTP请求),这非常长,几乎无法使用。beta17一次加载所有模块(或者每个核心至少加载一个文件、http、rxjs…) 我遵循了beta版和RC版的官方快速入门指南 您能告诉我如何使用与beta版相同的机制,或者在RC.0中使用聚合模块的新机制是什么吗?我有同样的问题,并由“systemjs builder”解决。但是还没有详细的测试。供你参考 thx从@Gaurav获得评论 下面的代码将按“@ang
您能告诉我如何使用与beta版相同的机制,或者在RC.0中使用聚合模块的新机制是什么吗?我有同样的问题,并由“systemjs builder”解决。但是还没有详细的测试。供你参考 thx从@Gaurav获得评论 下面的代码将按“@angular”下的每个文件夹打包“@angular”。 只需将它们保存到whateverthename.js文件中
var Builder = require('systemjs-builder');
var packages = {};
var packageNames = [
'@angular/common',
'@angular/compiler',
'@angular/core',
'@angular/http',
'@angular/platform-browser',
'@angular/platform-browser-dynamic',
'@angular/router-deprecated',
'@angular/upgrade',
];
packageNames.forEach(function(pkgName) {
packages[pkgName] = { main: 'index.js' };
});
var builder = new Builder({
baseURL: '/node_modules',
defaultJSExtensions: true,
packages: packages
});
packageNames.forEach(function(pkgName) {
builder.bundle(pkgName, 'assets/'+ pkgName+'.js')
.then(function() {
console.log(pkgName+'Build complete');
})
.catch(function(err) {
console.log(pkgName+'Build error');
console.log(err);
});
});
然后执行命令node whateverthename.js
。
模式将构建到资产文件夹。通过使用@A-xiao的答案并添加rxjs依赖项,我成功地将所有js文件合并到一个缩小的文件中。必须执行以下节点脚本
var Builder = require('systemjs-builder');
var packages = {
'rxjs': {main: 'Rx.js'}
};
var packageNames = [
'@angular/common',
'@angular/compiler',
'@angular/core',
'@angular/http',
'@angular/platform-browser',
'@angular/platform-browser-dynamic',
'@angular/router-deprecated',
];
packageNames.forEach(function (pkgName) {
packages[pkgName] = {main: 'index.js'};
});
packageNames.push('rxjs');
var builder = new Builder({
baseURL: '/node_modules',
defaultJSExtensions: true,
packages: packages
});
packageNames.forEach(function (pkgName) {
builder.bundle(pkgName, 'build/assets/' + pkgName + '.js')
.then(function () {
console.log(pkgName + ' Build complete');
})
.catch(function (err) {
console.log(pkgName + ' Build error');
console.log(err);
});
});
所有生成的文件都可以合并和缩小。然后,必须在绑定文件之后导入以下systemjs.config.js
(function (global) {
var map = {
'app': 'app'
};
var packages = {
'app': {main: 'main.js'},
'rxjs': {main: 'Rx.js'}
};
var packageNames = [
'@angular/common',
'@angular/compiler',
'@angular/core',
'@angular/http',
'@angular/platform-browser',
'@angular/platform-browser-dynamic',
'@angular/router-deprecated'
];
packageNames.forEach(function (pkgName) {
packages[pkgName] = {main: 'index.js'};
});
var config = {
map: map,
packages: packages,
defaultJSExtensions: true
};
if (global.filterSystemConfig) {
global.filterSystemConfig(config);
}
System.config(config);
})(this);
Angular2打包机似乎在工作,但我无法处理rxjs库。您是否也有以相同方式打包的解决方案?现在应该使用Angular CLI。