Angular 2:系统导入应用程序无法在没有文件扩展名的情

KCa*_*lle 7 systemjs angular

我对Angular和systemjs很新,但我会尝试尽可能更具体.

我正在使用angularjs2和打字稿.我使用tsconfig.json编译我的.ts文件.这是我的配置:

在此输入图像描述

接下来,我想使用systemjs通过index.html引导我的应用程序.但我的导入不接受没有扩展名的init(下面,我的init,实际上工作):

    System.config({
        transpiler: 'typescript'
    });
    System.import('src/app.ts');
Run Code Online (Sandbox Code Playgroud)

我被迫提到.ts扩展名(当我想导入手工制作的组件时,ts文件中的问题相同).
我忘记了什么吗?有关首次配置的初学者的文档有点粗略.
此外,我已经调用了所有脚本<head>(system.js,typescript.js,angular2.dev.js)

chr*_*web 5

我有一个类似的问题,唯一的区别是我没有使用 angular

@Nicolas 指出了正确的方向,您需要添加“defaultExtension”,对我而言,以下配置可以解决问题:

packages: {
    '.': {
        defaultJSExtensions: 'js'
    }
},
Run Code Online (Sandbox Code Playgroud)

您可以在 github 上找到有关如何配置 systemjs 的更多信息

更新:戴的评论:

由于 systemjs 0.19 属性是 defaultExtension 并且默认为 *.js,因此除非您使用非默认设置,否则没有必要定义包成员。


Nic*_*shi 4

我正在研究新版本的 AngularJS,每次需要设置 SystemJS 时,我都会在索引页面中使用此配置。

System.config({
    packages: {        
      app: {
        format: 'register',
        defaultExtension: 'js'
      }
    }
  });
Run Code Online (Sandbox Code Playgroud)

你需要说出你的扩展文件是什么来 SystemJS 加载你的模块,我认为它对你有帮助。