функция eval заставляет приложение не работать в производственной среде - PullRequest
0 голосов
/ 07 ноября 2019

Я развертываю приложение aurelia в производственной среде, и я столкнулся с проблемой, заключающейся в том, что код результата включает в себя вызовы функций eval, а моя производственная среда, к сожалению, этого не позволяет.

И я сталкиваюсь с этой ошибкой в ​​приложенииrun:

enter image description here

vendors~2a42e354.02107019925d746ff1ac.chunk.js:10 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'".

    at Object.GAND (vendors~2a42e354.02107019925d746ff1ac.chunk.js:10)
    at __webpack_require__ (runtime~app.02107019925d746ff1ac.bundle.js:85)
    at Object.0 (app~01e7b97c.02107019925d746ff1ac.chunk.js:44)
    at __webpack_require__ (runtime~app.02107019925d746ff1ac.bundle.js:85)
    at checkDeferredModules (runtime~app.02107019925d746ff1ac.bundle.js:46)
    at Array.webpackJsonpCallback [as push] (runtime~app.02107019925d746ff1ac.bundle.js:33)
    at app~5a11b65b.02107019925d746ff1ac.chunk.js:1

Теперь я хочу знать, есть ли способ построить aurelia для производства, исключив функции eval?

ОБНОВЛЕНИЕ

Полагаю, это может быть связано с веб-пакетом. Если это так, есть ли способ изменить эту конфигурацию в веб-пакете?

1 Ответ

0 голосов
/ 12 ноября 2019

Наконец я и мой коллега нашли проблему. Хотя кажется, что проблема специфична для нашей ситуации, я делюсь ею, чтобы она могла помочь другим в обнаружении подобных проблем:

Основная проблема заключалась в том, что проект здания в режиме разработки был источником проблемы. Вывод сборки типа разработки включает в себя eval вызовы функций во многих модулях. Достаточно было сделать сборку в производственном режиме.

Но вторая ошибка заключалась в том, что я думал, что строю в производственном режиме при использовании этой команды:

au build --prod

У меня естьпропустил эту команду с CLI Angular. И правильная команда была:

au build --env prod

Таким образом, конфигурация веб-пакета не должна была использовать вызовы eval в производственной среде.

...