0

我在 Visual Studio 2015 项目中使用 gulp-typescript:"2.9.0" 和 typescript:"1.6.2" 将 angular typescript 文件的文件夹编译为单个 app.js 文件。我遇到的问题是连接的输出顺序不正确导致角度抛出异常。最初,我能够更改文件名的字母顺序,并且可以获得正确的顺序,但这只是停止工作。我还尝试将所有文​​件以正确的顺序包含在“_references.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" />
4

2 回答 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));
});

我没有使用 typescript 配置对象中的 out 选项来为每个 .ts 文件获取一个 .js 文件。然后,在使用角度排序插件之后,我将它们分别连接起来。

于 2016-05-03T18:34:35.463 回答
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()));
于 2015-09-25T21:20:05.157 回答