2016-11-07 7 views
0

私は反応のためにtypescript(tsx)を使用しました。アップロード画像タスクでは、aws-sdkを使用してサーバーs3にアップロードしました。私はまた、aws-sdkをnpmとタイピングでインストールしました。aws-sdkをtsxファイルにインポートする方法

UploadFile.tsx

import * as AWS from 'aws-sdk'; 
//constant 
import DefaultValue from '../../Constants/DefaultValue'; 

AWS.config.update({ 
    region: DefaultValue.REGION, 
    credentials: new AWS.Credentials(DefaultValue.ACCESS_KEY_ID, DefaultValue.SECRET_KEY) 
}); 

class UploadFile extends React.Component<any,any> { 
    s3: any; 
    constructor() { 
     super(); 

     this.s3 = new AWS.S3({apiVersion: '2016-11-07'}); 
    } 

} 

クロームコンソールエラー: 'AWSは未定義です'。 AWSはどのようにインポートできますか?手伝ってくれてありがとう 。

+0

react-jsはフロントエンド用です。 ACCESS_KEY_IDとSECRET_KEYをフロントエンドに配置します。あなたは正気ですか? :) –

+0

@DiligentKeyPresserああ、私はそれが危険だと知っていた。しかしそれは私の私的なウェブサイトです。それはローカルで使うだけです。 –

答えて

2

実際にaws-sdkパッケージをバンドルしておくか、インポートを完全に使わないでください。

Webpackルートに移動し、依存関係にバンドルする場合は、read about that hereとすることができます。 npm install -S aws-sdkが必要で、ts-loaderやawesome-typescript-loaderのようなTypeScriptのローダーを使用してください。スクリプトタグを使用し続けたい場合は、次のようなものを記述する必要があります

だけ使用していますので、 _AWS自体のインポートが(削除されます
import * as _AWS from "aws-sdk"; 
declare var AWS: typeof _AWS; 

そのタイプの場合)、それ以外の場合はAWSを参照します。

関連する問題