评估功能使应用无法在生产环境中运行

时间:2019-11-07 06:46:40

标签: webpack build production aurelia

我正在将aurelia应用程序部署到生产环境中,但是我遇到了这样的问题,即结果代码包含eval函数调用,但不幸的是,我的生产环境不允许这样做。

我在应用运行时遇到此错误:

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

现在我想知道是否可以通过排除eval函数来构建用于生产的aurelia?

更新

我想这可能与webpack有关。如果是,是否有办法在webpack中更改此配置?

1 个答案:

答案 0 :(得分:0)

最后,我和我的同事发现了问题。尽管似乎该问题是针对我们的情况的,但我也同意,所以它可能会在其他类似问题的发现中提供帮助:

主要问题在于开发模式下的建筑项目是问题的根源。开发类型构建的输出在许多模块中包括eval个函数调用。在生产模式下进行构建就足够了。

但是第二个错误是我在使用该命令时以为是在生产模式下构建:

au build --prod

我错过了Angular CLI的此命令。正确的命令是:

au build --env prod

因此,webpack的配置是在生产环境上不使用eval调用。