Nic*_*cis 16 typescript aws-sdk angular
我正在尝试让我的Angular2应用程序允许我读取和写入我的AWS账户上的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'
Run Code Online (Sandbox Code Playgroud)
但它一直告诉我该模块不存在.
我的项目基于angular2-seed.
我也尝试使用DefinitleyTyped安装打包文件,typings install aws-sdk但也失败了.
我不确定是否需要添加任何其他内容才能使其正常工作.
另外,我正在使用打字稿
感谢您的时间和帮助.
但它一直告诉我该模块不存在.
将TypeScript和aws-sdk更新为最新版本.在你的tsconfig中确保你有moduleResolution: node.现在你可以简单地做:
import * as AWS from 'aws-sdk';
Run Code Online (Sandbox Code Playgroud)
来自NPM上的aws-sdk文档(https://www.npmjs.com/package/aws-sdk)
使用TypeScript
AWS SDK for JavaScript捆绑TypeScript定义文件,以便在TypeScript项目中使用,并支持可读取.d.ts文件的工具.我们的目标是保持这些TypeScript定义文件随每个版本更新为任何公共API.
先决条件 在开始在项目中使用这些TypeScript定义之前,您需要确保您的项目满足以下一些要求:
使用TypeScript v2.x
包含节点的TypeScript定义.您可以使用npm通过在终端窗口中键入以下内容来安装它:
npm install --save-dev @types/node
Run Code Online (Sandbox Code Playgroud)
您tsconfig.json或jsconfig.json包括compilerOptions.lib下的'dom'和'es2015.promise'.请参阅tsconfig.json示例.
在浏览器中
要在前端项目中将TypeScript定义文件与全局AWS对象一起使用,请将以下行添加到要打算使用它的JavaScript或Typescript文件的顶部,或将其添加到tsconfig"types"或声明文件:
/// <reference types="aws-sdk" />
Run Code Online (Sandbox Code Playgroud)
这将为全局AWS对象提供支持.
上一个答案
我发现如果我添加
{ src: 'aws-sdk/dist/aws-sdk', inject: 'libs' }
Run Code Online (Sandbox Code Playgroud)
到project.config.ts中的additional_deps(如果你使用angular2-seed)或者只是添加
<script src="/node_modules/aws-sdk/dist/aws-sdk.js"></script>
Run Code Online (Sandbox Code Playgroud)
到你的index.html然后我可以添加
declare const AWS: any;
Run Code Online (Sandbox Code Playgroud)
对于我需要的任何.ts文件,我可以访问AWS对象.但是不确定这是否是一个好的解决方案.
1) 请通过添加以下内容来更新/src/polyfills.ts:
// aws-sdk requires global to exist
(window as any).global = window;
Run Code Online (Sandbox Code Playgroud)
2) 然后使用以下内容更新位于/src/tsconfig.app.json 中的compilerOptions对象:
"types": ["node"]
Run Code Online (Sandbox Code Playgroud)
3)安装aws-sdk:
npm install aws-sdk
Run Code Online (Sandbox Code Playgroud)
4) 现在您应该可以在 *.ts 文件中使用 AWS SDK:
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
}
...
}
Run Code Online (Sandbox Code Playgroud)
5)不要硬编码您的凭据,请查看在 Web 浏览器中设置凭据以获取更多信息,谢谢
| 归档时间: |
|
| 查看次数: |
14603 次 |
| 最近记录: |