我正在尝试让我的Angular2
应用程序允许我在我的s3帐户上读写一个s3桶。
在AngularJS
(和大多数其他东西)中,我们使用了aws-sdk
,所以我假设同样的事情也可以用于Angular2
。
不过,我遇到的问题是如何将aws-sdk
正确导入到我的项目中。
我是通过npm install aws-sdk
安装的
我试着用
import * as AWS from 'aws-sdk/dist/aws-sdk',
import * as AWS from 'aws-sdk',
import AWS from 'aws-sdk'
import AWS from 'aws-sdk/dist/aws-sdk'
但它一直告诉我这个模块不存在。
我的项目是以安古拉2号种子为基础的。
我还试图使用DefinitleyTyped安装输入文件,但也失败了。
我不确定我是否需要为它的工作添加其他的东西。
另外,我用的是打字本
谢谢你的时间和帮助。
发布于 2016-05-05 02:13:41
但它一直告诉我这个模块不存在。
将TypeScript和aws更新为最新版本。在您的tsconfig中,确保您有moduleResolution: node
。现在您可以简单地做:
import * as AWS from 'aws-sdk';
发布于 2016-05-05 02:25:57
来自NPM上的aws文档(https://www.npmjs.com/package/aws-sdk)
与TypeScript一起使用
AWS用于JavaScript,它将TypeScript定义文件捆绑在TypeScript项目中,并支持可以读取.d.ts文件的工具。我们的目标是使这些TypeScript定义文件与任何公共api的每个版本一起更新。
在您开始在项目中使用这些TypeScript定义之前,您需要确保项目满足以下几个需求:
使用TypeScript v2.x
包括节点的TypeScript定义。您可以通过在终端窗口中键入以下内容来使用npm来安装:
npm install --save-dev @types/node
您的tsconfig.json
或jsconfig.json
包括compilerOptions.lib下的“dom”和“es2015”。有关示例,请参见tsconfig.json
。
浏览器中的()
若要将TypeScript定义文件与前端项目中的全局AWS对象一起使用,请将以下一行添加到您打算使用的JavaScript或类型记录文件的顶部,或将其添加到tsconfig‘type’或声明文件中:
/// <reference types="aws-sdk" />
这将为全局AWS对象提供支持。
先前的答案
我发现如果我加上
{ src: 'aws-sdk/dist/aws-sdk', inject: 'libs' }
到additional_deps中的project.config.ts (如果您使用angular2种子)或只添加
<script src="/node_modules/aws-sdk/dist/aws-sdk.js"></script>
到你的index.html上,然后我可以添加
declare const AWS: any;
对于我需要的任何.ts文件,我都可以访问AWS对象。然而,不确定这是否是一个好的解决方案。
发布于 2019-10-30 15:04:49
1)请更新/src/polyfills.ts,添加:
// aws-sdk requires global to exist
(window as any).global = window;
2)然后用以下内容更新位于compilerOptions中的/src/tsconfig.app.json对象:
"types": ["node"]
3)安装aws:
npm install aws-sdk
4)现在您应该能够在*.ts文件中使用AWS:
import * as AWS from 'aws-sdk';
...
export class YourComponent implements OnInit {
constructor() { }
ngOnInit() {
}
doSmthingWithAwsSdk(){
AWS.config.credentials = new AWS.Credentials(accessKeyId, secretAccessKey, sessionToken);
AWS.config.region = region;
// do something
}
...
}
5) 不要硬编码您的凭据,请查看在Web浏览器中设置凭据以获得更多信息,谢谢
https://stackoverflow.com/questions/37041049
复制相似问题