Вопрос упорядочения компиляции Typescript gulp-typcript, tsc 1.6

0

Я использую 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" />
Теги:
visual-studio-2015
typescript1.6

2 ответа

1

Мне удалось решить это, используя плагин 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. Затем, после использования плагина угловой сортировки, я конкатюю их отдельно.

0

Используйте параметр 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()));
  • 0
    Сортировка вывода не работает для меня. Он по-прежнему объединяет файлы в порядке, указанном в файле _references. В итоге мне пришлось явно перечислять каждый файл по порядку в коллекции файлов файла tsconfig.json. Проблема заключалась в том, что угловой модуль был объявлен в одном файле, а затем использовался в другом. Typescript не понимает этот порядок, поэтому мне нужно было его определить. Я перешел на внешние модули все вместе.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню