1

我正在开发一个应用程序,我需要增加加载所有脚本的 angular 2 性能。问题是这个错误:

在此处输入图像描述

我正在使用 gulp + systemjs + systemjs-builder。这是我的文件:

[gulp文件]

gulp.task('bundle', function () {
    var builder = new SystemBuilder('./', './wwwroot/lib/js/systemjs.config.js');
    return builder.buildStatic('wwwroot/lib/spa/main.js', 'wwwroot/lib/js/bundle.min.js', {
        minify: true,
        mangle: true,
        rollup: true,
        runtime: false
    });
});

[systemjs.config]

var config = {
        //use typescript for compilation
        transpiler: 'typescript',
        transpilerRuntime: false,
        //typescript compiler options
        typescriptOptions: {
            emitDecoratorMetadata: true
        },
        map: map,
        packages: packages,
        defaultJSExtensions: true
    };

如您所见,由于defaultJSExtensions : true ,它被添加到了转译器中。我需要做一些不同的事情吗?(我真的需要这个属性等于 true,因为我有很多没有.js的路径)。

提前感谢=)

4

1 回答 1

0

我通过添加来解决问题

var map = {'typescript': 'node_modules/typescript/lib', ...}

var packages = {'typescript': { main: "typescript.js", ... }}

在 systemjs 文件中配置:

var config = {
        //use typescript for compilation
        transpiler: 'typescript',
        //typescript compiler options
        typescriptOptions: {
            emitDecoratorMetadata: true
        },
        map: map,
        packages: packages,
        defaultJSExtensions: true
    };
System.config(config);

这样 systemjs-builder 找到转译器路径是没有问题的。按照马丁网址(将 Angular2 HTML 和 TypeScript 构建到单个文件)并搜索主题 3,我发现了这个东西https://github.com/systemjs/systemjs/blob/master/docs/production-workflows.md 来帮助捆绑加载。=)

于 2017-03-17T11:23:56.437 回答