Я использую gulp-typescript: "2.9.0" и машинопись: "1.6.2" в проекте Visual Studio 2015 для компиляции папки с угловыми файлами в один файл app.js. Проблема, с которой я сталкиваюсь, заключается в том, что конкатенированный порядок вывода неверен, заставляя углы бросать исключения. Первоначально я смог изменить алфавитный порядок имен файлов, и я мог получить правильный порядок, но это просто перестало работать. Я также попытался включить все файлы в правильном порядке в файл "_resferences.ts", но это, похоже, не работает. Я включил файл _references.ts, который я использую ниже. Файл "app.config.ts" всегда отображается в верхней части вывода и зависит от файла "app.module.ts". У кого-нибудь есть решение для этого?
/// <reference path="../typings/angularjs/angular.d.ts" />
/// <reference path="../typings/jquery/jquery.d.ts" />
/// <reference path="../typings/angularjs/angular-route.d.ts" />
/// <reference path="app.module.ts" />
/// <reference path="app.zconfig.ts" />
/// <reference path="app/framework/framework.module.ts" />
/// <reference path="app/framework/psframework.directive.ts" />
/// <reference path="app/framework/menu/menu.module.ts" />
/// <reference path="app/framework/menu/menu.directive.ts" />
/// <reference path="app/framework/menu/menu-item.directive.ts" />
/// <reference path="app/framework/dashboard/dashboard.module.ts" />
Мне удалось решить это, используя плагин gulp-angular-filesort. Это задача компиляции машинописного текста, которая сделала это:
gulp.task('compile', function () {
var pathsArray = paths.js.typescriptDefinitionFile.concat(paths.js.src);
gulp.src(pathsArray)
.pipe(typescript({
target: 'es5',
noImplicitAny: true,
preserveConstEnums: true
}))
.pipe(angularFilesort())
.pipe(concat(paths.js.srcOutputFile))
.pipe(gulp.dest(paths.js.outputFolder));
});
Я не использовал параметр out в объекте конфигурации типов, чтобы получить файл.js для каждого файла.ts. Затем, после использования плагина угловой сортировки, я конкатюю их отдельно.
Используйте параметр sortOutput - установите значение true, как здесь
var tscResult = srcResult
.pipe(gulpTypeScript({
typescript: require('typescript'),
sortOutput: true,
target: "ES5",
declarationFiles: true,
noEmitOnError: dontEmitTSbuildErrors,
out: "./obj/" + outFileName + ".js"
}, undefined, gulpTypeScript.reporter.longReporter()));