我正在尝试让 angular2 演示代码在 Chrome 开发引擎中运行。我完全按照这个例子,得到了以下错误。
Uncaught ReferenceError: require is not defined
main.js:4 Uncaught TypeError: Cannot read property 'Component' of undefined
但是,当我将完全相同的代码放在其他任何地方(Python 提供的静态 HTML)时,它会按预期工作。当我检查元素或检查背景页面时,我没有在页面上收到任何其他错误。
我还尝试右键单击该项目并执行“CSP 重构”,但这并没有改变错误。
function AppComponent() {}
AppComponent.annotations = [
new angular.Component({
selector: 'my-app'
}),
new angular.View({
template: '<h1>My first Angular 2 App</h1>'
})
];
document.addEventListener('DOMContentLoaded', function() {
angular.bootstrap(AppComponent);
});
<script src="https://code.angularjs.org/2.0.0-alpha.19/angular2.sfx.dev.js"></script>
<my-app></my-app>
这是我的清单
{
"manifest_version": 2,
"name": "myApp",
"short_name": "myApp",
"description": "",
"version": "0.0.1",
"minimum_chrome_version": "38",
"icons": {
"16": "assets/icon_16.png",
"128": "assets/icon_128.png"
},
"app": {
"background": {
"scripts": ["background.js"]
}
}
}
所以我发现问题是 angular2_sfx.js 和片段包含的 angular2.dev.sfx.js 文件之间的区别。下面是 angular2_sfx.js。将其与开发版本的 30k+ 行进行比较。
"use strict";
var $__angular2__;
var angular = ($__angular2__ = require("./angular2"), $__angular2__ && $__angular2__.__esModule && $__angular2__ || {default: $__angular2__});
var _prevAngular = window.angular;
angular.noConflict = function() {
window.angular = _prevAngular;
return angular;
};
window.angular = angular;
//# sourceMappingURL=angular2_sfx.es6.map
//# sourceMappingURL=./angular2_sfx.map