eval 函数使应用程序无法在生产环境中运行
eval function makes app not work on production environment
我正在将 aurelia 应用程序部署到生产环境中,但我遇到了结果代码包含 eval 函数调用的问题,不幸的是我的生产环境不允许这样做。
我在应用程序 运行 上遇到此错误:
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 中更改此配置?
最后我和我的同事发现了这个问题。虽然这个问题似乎是我们的情况所特有的,但我分享它可能会帮助其他人发现类似的问题:
主要问题是在开发模式下构建项目是问题的根源。开发类型构建的输出包括 eval
多个模块中的函数调用。我在生产模式下进行构建就足够了。
但第二个错误是我认为我在使用此命令时正在生产模式下构建:
au build --prod
我在使用 Angular 的 CLI 时错过了这个命令。正确的命令是:
au build --env prod
所以webpack的配置是生产环境不使用eval调用
我正在将 aurelia 应用程序部署到生产环境中,但我遇到了结果代码包含 eval 函数调用的问题,不幸的是我的生产环境不允许这样做。
我在应用程序 运行 上遇到此错误:
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 中更改此配置?
最后我和我的同事发现了这个问题。虽然这个问题似乎是我们的情况所特有的,但我分享它可能会帮助其他人发现类似的问题:
主要问题是在开发模式下构建项目是问题的根源。开发类型构建的输出包括 eval
多个模块中的函数调用。我在生产模式下进行构建就足够了。
但第二个错误是我认为我在使用此命令时正在生产模式下构建:
au build --prod
我在使用 Angular 的 CLI 时错过了这个命令。正确的命令是:
au build --env prod
所以webpack的配置是生产环境不使用eval调用