我尝试根据本教程安装适用于TypeScript的AngularJS 2:
https://angular.io/guide/quickstart
而我收到此错误:
ReferenceError: System is not defined System.config
我不知道这是怎么发生的.
文件夹结构:
project |-index.hml |-assets |-js |- jquery |-app |-app.component.js |-app.component.ts |-app.component.js.map |-main.js |-main.ts |-main.js.map
解决方法
您需要将SystemJS包含在HTML页面中.要从node_modules文件夹中使用Angular2应用程序,至少需要:
<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>
并配置SystemJS以加载已编译的TypeScript(实际上是带有js扩展名的JavaScript).像这样的东西:
<script> System.config({ map: { app: 'assets/js/app' },packages: { app: { format: 'register',defaultExtension: 'js' } } }); </script>
此配置意味着当您尝试导入以app /开头的某些模块时,SystemJS将加载相应的JS文件(从TypeScript编译).例如:System.import(‘app / main’);将加载app / main.js文件.
这意味着您需要先编译TypeScript文件.启动npm run start命令时,tsc编译器会在后台自动启动,并在检测到更改时将TypeScript文件编译为JS文件.您可以检查编译器是否已实际启动并且您已创建JS文件…