【发布时间】:2016-03-04 21:42:54
【问题描述】:
我正在尝试在 Chrome 扩展程序中使用 angular2,但它没有识别出我已经加载了 angular2 包。这是我在文件/www/popup.html中的脚本标签:
<script src="lib/js/jquery.min.js"></script>
<script src="lib/js/es6-shim.min.js"></script>
<script src="lib/js/system-polyfills.js"></script>
<script src="lib/js/angular2-polyfills.js"></script>
<script src="lib/js/system.src.js"></script>
<!-- bundles should be used -->
<script src="lib/js/Rx.js"></script>
<script src="lib/js/angular2.dev.js"></script>
<script src="lib/js/router.dev.js"></script>
<script src="app/pages/popup-page.js"></script>
在/www/app/pages/popup-page.js 中,如果我设置到 angular2 和 rxjs 源的路径,它将起作用:
System.config({
defaultJSExtensions: true, // Will prepend .js to the module names
paths: {
'angular2/*': '/node_modules/angular2/*', // finds
'rxjs/*': '/node_modules/rxjs/*', // finds
'*': '/www/app/*'
},
packages: {
"app": {
format: 'register',
defaultExtension: 'js',
}
}
});
但我不想让它单独加载每个 javascript 文件,甚至不希望将它们包含在我的扩展程序中。看起来这些包应该在脚本加载时自行注册。
如果我不包含指向我的代码所在的路径“*”,我会在尝试运行脚本时收到“未定义要求”。
-
如果我不包含 angular2 和 rxjs 的路径,我会让浏览器尝试为每个导入加载“/www/app/angular2/...”,而不是使用捆绑包
【问题讨论】: