Vuejs浏览器扩展,而不在CSP中使用'unsafe-eval'

时间:2017-11-06 14:26:11

标签: vuejs2 laravel-mix

我使用Vuejs构建了一个浏览器插件,并使用Laravel Mix作为我的构建过程。

我的所有vue模板都在单个文件组件中,一切都运行得很好......直到我从我的插件清单中的CSP中删除'unsafe-eval'。 Firefox显示错误:

--In mysql update your_table e select a,b, IFNULL(email,'Unknow') from tmp_table --In sqlserver update your_table e select a,b, ISNULL(email,'Unknow') from tmp_table --In oracle update your_table e select a,b, nvl(email,'Unknow') from tmp_table

Laravel Mix使用webpack和vue-loader,我认为它创建的捆绑包符合CSP标准。

我查看了内置的JS,但似乎没有调用Content Security Policy: The page's settings blocked the loading of a resource...Source: call to eval() or related function blocked by CSP.,但我认为有一个eval()调用导致问题。

我在这里错过了一些简单的东西吗?

1 个答案:

答案 0 :(得分:4)

我错过了一些简单的事情。

基本上我需要配置webpack来使用vue的运行时构建,如下所示:

mix.webpackConfig({
    resolve: {
        alias: {
            'vue$': 'vue/dist/vue.runtime.js'
        }
    }
});

然后使用根组件而不是html元素实例化vue:

const root = require('my-root-component.vue');
const app = new Vue({
    el: '#app',
    render: createElement => createElement(root),
});

我在这里得到了答案:https://github.com/JeffreyWay/laravel-mix/issues/1052