मैं भी कोणीय 2 (कोणीय क्ली जेनरेट) परियोजना के साथ aws-sdk का उपयोग करने का प्रयास करता हूं। मैं ब्राउज़र में libs को सही लोड करने में सक्षम नहीं था।
एंग्लुअर दस्तावेज़ के अनुसार मैं aws libaries (https://github.com/angular/angular-cli/wiki/3rd-party-libs#adding-underscore-library-to-your-project) आयात किया गया था।
इस इस तरह दिखता है:
संपादित package.json स्थानीय सिस्टम को NPM से जे एस फ़ाइल को लोड करने
{
...
"dependencies": {
"aws-sdk": "git://github.com/aws/aws-sdk-js.git#support/typescript"
},
...
}
संपादित angluar-CLI-build.js के निर्माण की प्रक्रिया के दौरान एडब्ल्यूएस जे एस फ़ाइलों की प्रतिलिपि बनाना सिस्टम-config.ts में
var Angular2App = require('angular-cli/lib/broccoli/angular2-app');
module.exports = function(defaults) {
return new Angular2App(defaults, {
vendorNpmFiles: [
...
'aws-sdk/**/*.js'
]
});
};
संपादित करें मानचित्र अनुभाग जिले के विक्रेता फ़ोल्डर गंतव्य फ़ाइल पर नाम स्थान मैप करने के लिए
const map: any = {
'aws-sdk': 'vendor/aws-sdk/dist/aws-sdk.js'
};
मेरी टाइपस्क्रिप्ट फ़ाइल में मैं एडब्ल्यूएस libs आयात करने का प्रयास करता हूं।
...
import * as AWS from 'aws-sdk';
...
@Injectable()
export class MyService {
public myMethod() {
var s3 = new AWS.S3();
...
...
...
इस टाइपप्रति संकलक के लिए सब ठीक है, स्रोत फ़ाइल भी ब्राउज़र में लोड किया जाता है लेकिन ऐसा लगता है त्रुटि हो "S3 एक निर्माता नहीं है"।
यदि आप सामान को डीबग करते हैं तो आप देखेंगे कि एडब्ल्यूएस सामान ठीक से शुरू किया गया है, लेकिन "आयात * के बाद 'aws-sdk' से AWS के रूप में आयात किया जाता है" var AWS को कुछ पागल ऑब्जेक्ट के साथ प्रारंभ किया जाता है।
मेरी समाधान वजह है:
संपादित package.json स्थानीय सिस्टम
{
...
"dependencies": {
"aws-sdk": "git://github.com/aws/aws-sdk-js.git#support/typescript"
},
...
}
संपादित angluar-CLI-निर्माण करने के लिए NPM से जे एस फ़ाइल को लोड करने।निर्माण प्रक्रिया के दौरान एडब्ल्यूएस जे एस फ़ाइलों की प्रतिलिपि बनाने js जिले के फ़ोल्डर विक्रेता के लिए स्क्रिप्ट का
var Angular2App = require('angular-cli/lib/broccoli/angular2-app');
module.exports = function(defaults) {
return new Angular2App(defaults, {
vendorNpmFiles: [
...
'aws-sdk/**/*.js'
]
});
};
ऐड आयात
<script src="/vendor/aws-sdk/dist/aws-sdk.js" type="text/javascript"></script>
index.html पर अंत में आपकी सेवा
// make AWS as 'any' available for typescript compiler
declare var AWS:any;
@Injectable()
export class MyService {
public myMethod() {
var s3= new AWS.S3();
...
...
...
इस में इसका इस्तेमाल करते हैं एक मिश्रित तरीका है। Angluar 2 बिल्ड प्रक्रिया का उपयोग करें, एनपीएम पैकेज प्रबंधन का उपयोग करें, लेकिन एडब्ल्यूएस टाइपस्क्रिप्ट प्रकार परिभाषाओं का उपयोग न करें।
एडब्ल्यूएस से आधिकारिक टाइपस्क्रिप्ट जल्द ही आ रहा है ... उम्मीद है कि ... https://github.com/aws/aws-sdk-js/issues/994 –