我正在努力将基于 jQuery 的 Chrome 应用程序转换为 Vue。由于 Chrome 应用程序的内容安全策略 (CSP)
,无法使用 eval()
,因此必须事先编译模板。
这本身不是 Vue 的单文件组件 (SFC)
方法的问题,在这种方法中,所有模板都被编译以在构建过程中呈现函数。
但是,由于构建目标是生产,所有来自 Vue 的警告和有用的注释都被删除了。因此,例如,如果我忘记了组件的属性,我不会收到警告。它只是不会出现。这使得开发非常困难。
然后,如果我在 package.json
中为 build
使用:
"build": "vue-cli-service build --mode development"
我在 Chrome 应用中遇到错误:
未捕获的 EvalError:拒绝将字符串评估为 JavaScript,因为“unsafe-eval”不是以下内容安全策略指令中允许的脚本源:“script-src 'self' blob: filesystem: chrome-扩展资源:“wasm-eval”。
而且index.js文件中确实有很多以
开头的eval
eval("__webpack_require_
所以我的问题是:
如何在不使用禁止的 eval
的情况下让构建系统在控制台中保留警告和提示?
我不确定问题是否是由于包含模板编译器引起的,但如果是,我如何告诉构建器不要使用编译器但仍然使用开发模式?
最佳答案
这是 CSP 的“问题”,您需要使用 Vue 的 vue.runtime.js 版本。
请引用https://v2.vuejs.org/v2/guide/installation.html#CSP-environments
关于javascript - 构建仅用于 Chrome 应用程序的开发和运行时的 Vue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55969356/