Сборка Vue для разработки и выполнения только для использования в приложениях Chrome - PullRequest
0 голосов
/ 03 мая 2019

Я борюсь с конвертацией приложения Chrome на основе jQuery в Vue. Из-за Content Security Policy (CSP) приложений Chrome невозможно использовать eval(), поэтому компиляция шаблонов должна выполняться заранее.

Это само по себе не проблема с подходом Vue Single File Components (SFC), когда все шаблоны компилируются для рендеринга функций в процессе сборки.

Однако, поскольку целью сборки является production , все предупреждения и полезные комментарии от Vue удаляются. Например, если я забуду свойство для компонента, я не получу предупреждение об этом. Это просто не будет отображаться. Это делает разработку очень трудной.

Тогда, если я в package.json для build, используйте:

"build": "vue-cli-service build --mode development"

В приложении Chrome появляется ошибка:

Uncaught 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: "script-src 'self' blob: filesystem: chrome-extension-resource: 'wasm-eval'".

И действительно, в файле index.js действительно много eval s, начиная с

eval("__webpack_require_

Итак, мой вопрос:

Как заставить систему сборки сохранять предупреждения и подсказки в консоли без использования запрещенных eval?

Я не уверен, что проблема вызвана включением компилятора шаблонов, но если так, как я могу сказать сборщику не использовать компилятор, но все еще использовать режим разработки?

1 Ответ

1 голос
/ 05 мая 2019

Это проблема с CSP, вам нужно использовать vue.runtime.js версию Vue.

Пожалуйста, обратитесь к https://vuejs.org/v2/guide/installation.html#CSP-environments

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...