Javascript 在遵循Angular2测试版快速启动时无法加载boot.js。0

Javascript 在遵循Angular2测试版快速启动时无法加载boot.js。0,javascript,angular,systemjs,Javascript,Angular,Systemjs,我已升级到Angular2@2.0.0-beta.0。app.ts和boot.ts都在我的src目录中(与Quickstart中的app相比)。src和index.html位于项目目录-angular2opost中,就像Quickstart示例一样。我尝试了很多方法,但总是找不到-boot.js,加载boot.js时出错我的index.html加载脚本所有加载的脚本都是: <base href="/src"/> <!--1. Load library links for ES6

我已升级到Angular2@2.0.0-beta.0。app.ts和boot.ts都在我的src目录中(与Quickstart中的app相比)。src和index.html位于项目目录-angular2opost中,就像Quickstart示例一样。我尝试了很多方法,但总是找不到-boot.js,加载boot.js时出错我的index.html加载脚本所有加载的脚本都是:

<base href="/src"/>
<!--1. Load library links for ES6-related imports, then load angular2 modules -->
<script src="./angular2-oPost/node_modules/systemjs/dist/system.src.js"></script>
<script src="./angular2-oPost/node_modules/angular2/bundles/angular2-polyfills.min.js"></script>
<script src="./angular2-oPost/node_modules/rxjs/bundles/Rx.js"></script> 
<script src="./angular2-oPost/node_modules/angular2/bundles/angular2.dev.js"></script>
<script src="./angular2-oPost/node_modules/angular2/bundles/router.min.js"></script>
<!-- 2. Configure SystemJS -->
<script>System.config({
  packages: {
    src: {
      format: 'register',
      defaultExtension: 'js'
      }
    }
  });
  System.import('src/boot').then(null, console.error.bind(console));
</script>
app.ts有一些用于导入的语句、@Component、@View、@RouteConfig和一个bootstrap语句。没有人上膛。控制台错误语句包括:

GET http://localhost/src/boot.js [HTTP/1.1 404 Not Found 31ms]
15:53:05.058 Error: Unable to load script http://localhost/src/boot.js
Error loading http://localhost/src/boot.js
Stack trace: error@http://localhost/angular2-oPost/node_modules/systemjs/dist/system.src.js:2506:18
[2]</</r.prototype.run@http://localhost/angular2-oPost/node_modules/angular2/bundles/angular2-polyfills.min.js:1:1994
[2]</</r.prototype.bind/<@http://localhost/angular2-oPost/node_modules/angular2/bundles/angular2-polyfills.min.js:1:1718
然后找到并加载引导,但是app.js成为新的问题,如果它(或它们)是硬编码的,那么其他组件也会遇到同样的问题


需要更改什么?

尝试以下加载和配置库的顺序

<!-- ES6-related imports -->
<script src="/node_modules/angular2/bundles/angular2-polyfills.js"></script>
<script src="/node_modules/es6-shim/es6-shim.min.js"></script>
<script src="/node_modules/systemjs/dist/system.js"></script>

<script>
//configure system loader
     System.config({defaultJSExtensions: true});
</script>

<script src="/node_modules/rxjs/bundles/Rx.js"></script>
<script src="/node_modules/angular2/bundles/angular2.min.js"></script>

<script>
 //bootstrap the Angular2 application
 System.import('dist/hello').catch(console.log.bind(console));
</script>

//配置系统加载器
System.config({defaultJSExtensions:true});
//引导Angular2应用程序
System.import('dist/hello').catch(console.log.bind(console));

参考:

与QuickStart的SystemJS配置不完全相同。您是否尝试过:

System.config({
  packages: {        
    app: {
      format: 'register',
      defaultExtension: 'js'
    }
  }
});

我在main.ts上遇到了同样的问题。请将导入更改为

import {AppComponent} from './app.component';

这应该可以解决问题,同样的错误也发生在我身上。如果上述加载和配置库的顺序对您不起作用,请尝试此操作

  • 删除整个node_modules文件夹
  • 通过“npm安装”重新安装
  • 它可以工作的原因是,您可能会更改根名称,并且上次运行的“npm install”在构建node_模块时包含了绝对web路径

    此外,还要注意index.html中定义的包。如果更改包含应用程序的任何文件夹名称,例如,如果将名称从“app”更改为“modules”,则也需要在“packages:”中更改该名称

    在我的例子中,我将boot放在WebContent/boot文件夹下,其中WebContent是web根目录,下面是index.html中System.config的脚本:

      <script>
      System.config({
        packages: {
          modules: {
            format: 'register',
            defaultExtension: 'js'
          },
          boot: {
            format: 'register',
            defaultExtension: 'js'
          }
        }
      });
      System.import('./boot/boot')
            .then(null, console.error.bind(console));
      </script>
    
    
    System.config({
    套餐:{
    模块:{
    格式:'寄存器',
    defaultExtension:'js'
    },
    启动:{
    格式:'寄存器',
    defaultExtension:'js'
    }
    }
    });
    系统导入(“./boot/boot”)
    .then(null,console.error.bind(console));
    
    我正在使用atom typescript,它显示“无错误”并编译我的typescript文件,如果这有助于了解的话。谢谢。控制台错误几乎是相同的-GET 404 Not Found 31ms]快速启动命名一个目录应用程序。我将同一个目录命名为src,这就是我在这段代码中使用src的原因。如果有“dist/hello”,则应该是加载到index.html中组件选择器中的应用程序组件的路径。在我的例子中,就是-angular2opost/src/app。当然,这带来了一个老笑话——我的代码不工作,我想知道为什么。现在我的代码工作了,我想知道为什么。一个很好的额外好处是我看到了非常快的加载时间-20到30毫秒很好。简单…有效..这就是为什么这么做。
    import {AppComponent} from './app.component';
    
      <script>
      System.config({
        packages: {
          modules: {
            format: 'register',
            defaultExtension: 'js'
          },
          boot: {
            format: 'register',
            defaultExtension: 'js'
          }
        }
      });
      System.import('./boot/boot')
            .then(null, console.error.bind(console));
      </script>