Angular2 TypeScript Bundle问题 - 组件未加载/初始化

时间:2016-04-26 15:48:42

标签: angular

我可以通过指定outFile将所有的打字稿文件连接成一个包:" /app/mybundle.js" tsconfig.json中的属性。

在创建这个包之前,我使用下面的Systemjs代码导入我的角度组件并初始化app,这很好。

<script>
        System.config({
            packages: { 'app': { defaultExtension: 'js' } },
        });
        System.import('app/myappp')
            .then(null, console.error.bind(console));
    </script>

但是当我创建这个包并将我的Systemjs代码更新为以下内容时:

<script>
        System.config({
            packages: { 'app': { defaultExtension: 'js' } },
        });
        System.import('/app/mybundle')
            .then(null, console.error.bind(console));
    </script>

我在屏幕上看到的只是加载,组件未加载/初始化。虽然我没有看到日志中的任何错误或404文件中的错误。

1 个答案:

答案 0 :(得分:0)

实际上,在使用outFile属性时,模块不再是匿名模块。它们是通过名称注册的,因此您无需配置SystemJS来将模块名称映射到相应的文件,即您使用packages块执行的操作。

没有outFile属性,在模块文件中:

System.register([ 'dep', ..., function...

使用outFile属性,在模块文件中:

System.register('modulename', [ 'dep', ..., function...

在第二种情况下,添加了与模块名称相对应的第一个字符串参数。

这样做:

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

请注意,模块名称中不再存在app级别。