2016-05-16 1 views
0

Я завершаю angular2 tour of heroes. И мне интересно, что, если я хотел бы построить этот проект для производства. Я хочу добавить только 2 файла в index.html: appScripts.js и vendorScripts.js. Я скомпилировал файлы ts с опцией outFile, поэтому у меня есть appScripts.js, но он не работает. Вот код в моем gulpfile:Как построить приложение angular2 для производства

gulp.task('compile', ['clean'], function() { 

    var tsProject = typescript.createProject('tsconfig.json', { 
     outFile: 'app.js' 
    }); 

    var tsResult = gulp.src(['app/**/*.ts']) 
     .pipe(typescript(tsProject)); 
    return tsResult.js 
     .pipe(gulp.dest('./dist')); 
}); 

Я думаю, это потому, что мы загрузили некоторые угловые модели, как @angular/core в проекте ts файлов, и из-за какой-то systemjs вещи ..

Есть ли какое-либо решение?

+0

Исследование этого тоже не так много. Пожалуйста, поделитесь, если вы что-то найдете. Экскурсия по учебнику для героев загружает сотни файлов в 2,2 Мб. Должен быть способ уменьшить это для развертывания prod. –

ответ

0

Я нашел решение. Вы должны скомпилировать файлы ts в файлы js, а затем собрать их через systemjs-builder. Вот мой глоток задача:

var Builder = require("systemjs-builder"); 
gulp.task("builder", function() { 

     var builder = new Builder(); 

     builder.loadConfig('./systemjs.config.js') 
      .then(function() { 
       builder.buildStatic('dist/main.js', 'public/appScript.js') 
        .then(function() { 
         console.log('Build complete'); 
        }) 
        .catch(error); 
      }); 
}); 

buildStatic метод создает окончательный файла JavaScript для вашего приложения.

+0

Не могли бы вы рассказать о размере своей производственной комплектации ?! – NetProvoke

+0

Это довольно большой. 1 415 Kb. –