【问题标题】:Problems using aws-sdk in the browser with browserify通过 browserify 在浏览器中使用 aws-sdk 的问题
【发布时间】:2018-06-27 15:26:17
【问题描述】:

我正在开发使用 aws-sdk 的基于浏览器的应用程序。我正在为我的应用程序代码使用 browserify,但还没有弄清楚如何将 aws 滚动到其中。我尝试了几种不同的方法:

//MyApp.js - Take 1 using downloaded minified version
var AWS = require ('./aws-sdk.min.js');
...
AWS.config.region='us-east-2';
...

导致无法设置未定义的属性“区域”

我的猜测是这不起作用,因为 browserify 无法解析缩小的代码。

//MyApp.js - Take 2 using downloaded development version
var AWS = require ('./aws-sdk.js');

这不会编译。 Browserify 报告错误:找不到模块'../lib/core'

我错过了什么技巧吗?

【问题讨论】:

    标签: javascript browserify aws-sdk


    【解决方案1】:

    当我在浏览器中使用 AWS 时,我根据需要的服务设置了我的区域,例如:

    new AWS.EC2({apiVersion: '2016-11-15', credentials, region})

    所以这让我想知道,也许你下载的版本是封装的,并没有为 browserify 暴露任何东西。

    首先我在浏览器中测试版本如下:

    console.log(AWS)
    <script src="https://cdnjs.cloudflare.com/ajax/libs/aws-sdk/2.184.0/aws-sdk.min.js"></script>

    一切看起来都不错,所以我继续在 browserify 上进行了测试。

    原来你正在重新分配 AWS 全局变量:

    var AWS = require ('./aws-sdk.min.js');

    但是你已经在捆绑它了,所以你很好,你需要做的是以下:

    require ('./aws-sdk.min.js');
    // And then use it happily
    AWS.config.region='us-east-2';
    

    无需重新分配 AWS 全局变量

    【讨论】:

    • 谢谢@Claudiordgz。那行得通。是对全局的重新分配杀死了我。
    • @Elsporko,它仍然经常发生在我身上!特别是与 webpack 捆绑时。
    猜你喜欢
    • 1970-01-01
    • 2021-08-23
    • 2015-10-09
    • 1970-01-01
    • 2019-05-06
    • 2015-11-03
    • 1970-01-01
    • 2019-04-02
    • 2014-12-18
    相关资源
    最近更新 更多