使用 ng build --prod 进行生产构建后 Angular5 应用程序失败
Angular5 application failing after production build with ng build --prod
我完全不知道如何调试它。
我已经使用 Angular 5 构建了一个应用程序,并且在使用 ng serve --aot --progress=false --proxy-config proxy.conf.json
进行开发期间运行非常棒
现在我已准备好部署到生产环境。我正在 运行ning ng build --prod --sm=false --aot --output-path=dist/client
并且构建成功。
我将客户端文件复制到服务器,当我在浏览器中 运行 时收到以下错误。
火狐:
TypeError: t[r] is undefined main.1eda0feb0dddc7c4747b.bundle.js:1:791705
Chrome
main.d8cd32d2ec09f8365918.bundle.js:1 Uncaught TypeError: Cannot read property 'call' of undefined
at n (main.d8cd32d2ec09f8365918.bundle.js:1)
at Object.t.exports (main.d8cd32d2ec09f8365918.bundle.js:1)
at n (main.d8cd32d2ec09f8365918.bundle.js:1)
at Object.t.exports (main.d8cd32d2ec09f8365918.bundle.js:1)
at n (main.d8cd32d2ec09f8365918.bundle.js:1)
at Object.t.exports (main.d8cd32d2ec09f8365918.bundle.js:1)
at n (main.d8cd32d2ec09f8365918.bundle.js:1)
at Object.t.exports (main.d8cd32d2ec09f8365918.bundle.js:1)
at n (main.d8cd32d2ec09f8365918.bundle.js:1)
at Object.<anonymous> (main.d8cd32d2ec09f8365918.bundle.js:1)
如果我转到主包的特定部分:
...return t[r].call(i.exports,i,i.exports,n),i.l...
我究竟该如何调试并找出导致问题的原因?
使用 --aot=false
对我的情况有所帮助
UPD:这是 Angular CLI 中的错误。已在 1.6.6 版本修复
在与 angular/cli 开票后,用户在 Gitter 上与团队进行了对话,这似乎与 cli 依赖性有关。添加 --build-optimizer=false
的标志应该可以解决大多数情况。他们希望通过@angular/cli 1.6.5
解决这个问题
完整对话可在 https://github.com/angular/angular-cli/issues/9244#issuecomment-358828083
阅读
我们不应该每次都使用--aot=false
,因为构建创建成功但部署后无法运行。无论您在应用程序中使用什么,最好在全局中使用确切的 angular clit 版本。
我通过使用命令
更改我的 angular CLI 版本解决了这个问题
npm install --save-dev @angular/cli@1.6.8
检查你的包-lock.json你的 angular 版本并在上面的命令中更改版本。
我完全不知道如何调试它。
我已经使用 Angular 5 构建了一个应用程序,并且在使用 ng serve --aot --progress=false --proxy-config proxy.conf.json
现在我已准备好部署到生产环境。我正在 运行ning ng build --prod --sm=false --aot --output-path=dist/client
并且构建成功。
我将客户端文件复制到服务器,当我在浏览器中 运行 时收到以下错误。
火狐:
TypeError: t[r] is undefined main.1eda0feb0dddc7c4747b.bundle.js:1:791705
Chrome
main.d8cd32d2ec09f8365918.bundle.js:1 Uncaught TypeError: Cannot read property 'call' of undefined
at n (main.d8cd32d2ec09f8365918.bundle.js:1)
at Object.t.exports (main.d8cd32d2ec09f8365918.bundle.js:1)
at n (main.d8cd32d2ec09f8365918.bundle.js:1)
at Object.t.exports (main.d8cd32d2ec09f8365918.bundle.js:1)
at n (main.d8cd32d2ec09f8365918.bundle.js:1)
at Object.t.exports (main.d8cd32d2ec09f8365918.bundle.js:1)
at n (main.d8cd32d2ec09f8365918.bundle.js:1)
at Object.t.exports (main.d8cd32d2ec09f8365918.bundle.js:1)
at n (main.d8cd32d2ec09f8365918.bundle.js:1)
at Object.<anonymous> (main.d8cd32d2ec09f8365918.bundle.js:1)
如果我转到主包的特定部分:
...return t[r].call(i.exports,i,i.exports,n),i.l...
我究竟该如何调试并找出导致问题的原因?
使用 --aot=false
对我的情况有所帮助
UPD:这是 Angular CLI 中的错误。已在 1.6.6 版本修复
在与 angular/cli 开票后,用户在 Gitter 上与团队进行了对话,这似乎与 cli 依赖性有关。添加 --build-optimizer=false
的标志应该可以解决大多数情况。他们希望通过@angular/cli 1.6.5
完整对话可在 https://github.com/angular/angular-cli/issues/9244#issuecomment-358828083
阅读我们不应该每次都使用--aot=false
,因为构建创建成功但部署后无法运行。无论您在应用程序中使用什么,最好在全局中使用确切的 angular clit 版本。
我通过使用命令
更改我的 angular CLI 版本解决了这个问题npm install --save-dev @angular/cli@1.6.8
检查你的包-lock.json你的 angular 版本并在上面的命令中更改版本。