DefaultExtension在Angular 2 app中不起作用

Viv*_*ndi 7 systemjs angular

我正在尝试使用TypeScript设置基本的Angular 2应用程序.但是我被卡住了,因为SystemJS似乎没有对defaultExtension: 'js'选项做任何事情.

index.html看起来像这样:

<!DOCTYPE html>
<html lang="en">
<head>
  <base href="/test/">
  <meta charset="UTF-8">
  <title>Test</title>

  <link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="stylesheet">
  <script src="node_modules/angular2/bundles/angular2-polyfills.js"></script>
  <script src="node_modules/systemjs/dist/system.src.js"></script>
  <script src="node_modules/rxjs/bundles/Rx.js"></script>
  <script src="node_modules/angular2/bundles/angular2.dev.js"></script>
  <script src="node_modules/angular2/bundles/router.dev.js"></script>

  <script>
    System.config({ packages: { app: { format: 'register', defaultExtension: 'js', } } });
    System.import('backend/app/boot')
        .then(null, console.error.bind(console));
  </script>
</head>
<body>
  <app>Loading</app>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

但是这会给我以下错误:

GET http://localhost:1122/test/backend/app/boot 404 (Not Found)
Run Code Online (Sandbox Code Playgroud)

可以.jsSystem.import命令中添加扩展名到路径,所以它看起来像这样:

System.import('backend/app/boot.js')
Run Code Online (Sandbox Code Playgroud)

然后,它能够找到boot.js,但随后抱怨说,它无法找到app.component.所以基本上我必须.js为该导入以及我将在我的应用程序中拥有的每个其他组件添加一个扩展.

我不认为这是我必须要解决的问题.那么我该如何解决这个System.import问题呢?defaultExtension: 'js'由于某种原因,它似乎无视.

Lan*_*ley 8

您正在js将该app软件包设置为软件包的默认扩展名,但您的代码backend/app不在app,请删除后端文件夹或修复软件包配置.