Angular 2 Typescript System.Src转换器与gulptask一起使用

时间:2016-04-15 21:35:19

标签: typescript gulp angular

我是打字稿和Angular2的新手,但......

我的设置如下:

而不是站点根目录下的app文件夹我有一个src \ app文件夹然后在我的gulp任务中我编译我的打字稿这样:

gulp.task('copy:libs', ['clean'], function () {
return gulp.src([
        'node_modules/es6-shim/es6-shim.min.js',
        'node_modules/systemjs/dist/system-polyfills.js',
        'node_modules/angular2/es6/dev/src/testing/shims_for_IE.js',
        'node_modules/angular2/bundles/angular2-polyfills.js',
        'node_modules/systemjs/dist/system.src.js',
        'node_modules/rxjs/bundles/Rx.js',
        'node_modules/angular2/bundles/angular2.dev.js'
    ])
    .pipe(gulp.dest(destination + '/js'));

});

目的地:

const destination = './UI/assets';
到目前为止很好,但现在是棘手的部分:

在我的目的地+ / app文件夹中,我获得了已编译的javascript文件,但在我的index.html文件中使用它们时:

<script>
    System.config({
        paths: {
            'app/*': '/UI/assets/app/*'
        },
    packages: {
      app: {
        format: 'register',
        defaultExtension: 'js'
      }
    }
  });
  System.import('app/main.js')
        .then(null, console.error.bind(console));
</script>

但是系统src在我的app.component上的main.js里面获得了一个404,它在typescript中就像这样注册了:

从&#39; ./ app.component&#39;;

导入{AppComponent}

如果我在已编译的app.component.js文件中更改为./app.component.js,这是有效的,但我如何以正确的方式解决这个问题??

我的tsconfig直接从angular 2开始复制。

我的systemjs模块应如何配置才能工作?现在它找不到任何js文件..

1 个答案:

答案 0 :(得分:0)

我修好了。它主要是我失踪的baseURL:

<script>
        System.config({
            baseURL : '/node_modules'
        });
        System.defaultJSExtensions = true;

        System.import('app/main.js')
            .then(null, console.error.bind(console));
    </script>