javascript - 构建仅用于 Chrome 应用程序的开发和运行时的 Vue

标签 javascript vue.js vuejs2 google-chrome-app

我正在努力将基于 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/

相关文章:

vue.js - 将 Vue 模板渲染为 Javascript 变量?

javascript - Vue js 搜索过滤器 - 数据和绑定(bind)加载问题

javascript - 无效的 prop : type check failed for prop "data". 预期数组,得到对象

javascript - DOM 节点的警告 : ReactDOMComponent: Do not access . Prop

javascript - SVG.js 是否可以实现路径动画

javascript - (JavaScript 和 HTML)单击时更改按钮的不透明度

javascript - Vue root 和任何子组件之间的通信

javascript - 箭头函数未编译

javascript - 动态插入字符串上的 Vue 事件处理程序不起作用

reactjs - 在 'default' 中找不到导出 'Three'(导入为 'three')