Angular5升级至Angular6后aws-sdk崩溃报错求助
解决Angular 6升级后
global is not defined报错问题 这个问题我之前升级Angular的时候也碰到过!根源是Angular 6使用的Webpack 4不再默认给浏览器环境注入Node.js风格的全局变量,而AWS SDK在浏览器端运行时会依赖global这个对象,所以就抛出了这个ReferenceError。
给你两个简单有效的解决方法:
方法一:在polyfills.ts中手动定义global
打开src/polyfills.ts文件,在最顶部添加这一行代码:
(window as any).global = window;
这个操作是把浏览器的window对象赋值给global变量,让AWS SDK能找到它需要的全局对象。
方法二:确保polyfills正确加载(可选)
如果你想更规范地确认配置,可以检查angular.json里的构建设置:
- 找到
projects -> [你的项目名] -> architect -> build -> options - 确认
polyfills字段指向了src/polyfills.ts(默认应该已经配置好了) - 重新启动开发服务器
ng serve
补充说明
Angular 5依赖的Webpack 3会自动为浏览器环境模拟Node.js的全局变量(比如global、process),但Webpack 4为了优化打包体积,移除了这个默认行为。所以你用ng update更新依赖也解决不了这个问题——这是构建环境的变化,和AWS SDK的版本无关(当然如果AWS SDK有适配Webpack 4的新版本,升级也可以,但上面的方法更直接高效)。
试一下上面的方法,重新启动项目应该就能正常运行了!
内容的提问来源于stack exchange,提问作者Zennichimaro
相关产品推荐
相关产品推荐

