我正在尝试使用 Angular 2 创建一个 chrome 打包的应用程序。但是当我尝试运行我的应用程序时出现以下错误:
EvalError: Refused to evaluate a string as JavaScript because 'unsafe-eval' is not an allowed source of script in the following Content Security Policy directive: "default-src 'self' blob: filesystem: chrome-extension-resource
-> Evaluating chrome-extension://aabbecghjjmmpbagelfmhllgaidcbnmn/app/boot.js
boot.js
的内容是:
System.config({ packages: { app: { format: 'register', defaultExtension: 'js', "defaultJSExtensions": true, } } });
System.import('app/boot').then(null, console.error.bind(console));
我知道 AngularJS(angular 1)有一个 ng-csp
指令来修复这个 Content Security Policy
错误。 Angular 2 有类似的东西吗?
有没有办法在打包的应用程序中运行 Angular 2?
最佳答案
这是解决问题的简短答案。
将以下内容添加到您的 Chrome 扩展程序或 App Manifest.json
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"
长话短说;
Chrome 开发者 - 扩展 内容安全策略 (CSP) https://developer.chrome.com/extensions/contentSecurityPolicy
这是来自 GitHub 的答案
chrome 应用程序中的 CSP Angular 为 2 #5956 https://github.com/angular/angular/issues/5956#issuecomment-180135425
这是 AngularJS 中描述的问题 https://docs.angularjs.org/api/ng/directive/ngCsp
关于angular - 在 Chrome 打包应用程序中使用 Angular 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35921674/