Systemjs-oluşturucuyu kullanarak uygulama kodunuzla Angular 2'yi paketleyebilir ve diğer kitaplıklarınızı ayrı olarak paketleyebilirsiniz.
Doğrudan HTML'de başvurulan tüm kitaplıkları bir vendors.min.js dosyasına ve system.config.js artı uygulama kodumla başvurulan tüm kitaplıkları bir app.min.js. Bu example'da, Tour of Heroes'daki tüm bağımlılıkların, < 10 ağ isteğinde (source code) sayfaya yüklendiğini görebilirsiniz.
// Bundle dependencies into vendors file
gulp.task('bundle:libs', function() {
return gulp.src([
'node_modules/jquery/dist/jquery.min.js',
'node_modules/bootstrap/dist/js/bootstrap.min.js',
'node_modules/semantic-ui/dist/semantic.min.js',
'node_modules/es6-shim/es6-shim.min.js',
'node_modules/es6-promise/dist/es6-promise.min.js',
'node_modules/systemjs/dist/system.src.js',
'system.config.js',
])
.pipe(concat('vendors.min.js'))
.pipe(uglify())
.pipe(gulp.dest('public/lib/js'));
});
// Compile TypeScript to JS
gulp.task('compile:ts', function() {
return gulp
.src([
"src/**/*.ts",
"typings/*.d.ts"
])
.pipe(sourcemaps.init())
.pipe(tsc({
"module": "system",
"moduleResolution": "node",
"outDir": "public/dist/js",
"target": "ES5"
}))
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest('public/dist'));
});
// Generate systemjs-based builds
gulp.task('bundle:js', function() {
var builder = new sysBuilder('public', './system.config.js');
return builder.buildStatic('app', 'public/dist/js/app.min.js');
});
// Minify JS bundle
gulp.task('minify:js', function() {
return gulp
.src('public/dist/js/app.min.js')
.pipe(uglify())
.pipe(gulp.dest('public/dist/js'));
});
gulp.task('scripts', ['compile:ts', 'bundle:js', 'minify:js']);
İlginç, bu projenin github repo'suna işaret edebilir misiniz? – Ajey
@Ajey İşte repo: https://github.com/smmorneau/tour-of-heroes – Steely
Neden "buildStatic" geçirilen systemjs küçültme seçeneğini kullanıp uglify kullanmıyorsunuz? – lbrahim