Я борюсь с конвертацией приложения 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
?
Я не уверен, что проблема вызвана включением компилятора шаблонов, но если так, как я могу сказать сборщику не использовать компилятор, но все еще использовать режим разработки?