tôi cũng cố gắng sử dụng aws-sdk với dự án góc 2 (góc được tạo bởi cli). tôi không thể tải libs đúng trong trình duyệt.
theo tài liệu angluar i đã nhập khẩu các libaries aws (https://github.com/angular/angular-cli/wiki/3rd-party-libs#adding-underscore-library-to-your-project).
này trông như thế này:
chỉnh sửa package.json để tải tập tin JS từ NPM vào hệ thống địa phương
{
...
"dependencies": {
"aws-sdk": "git://github.com/aws/aws-sdk-js.git#support/typescript"
},
...
}
chỉnh sửa angluar-cli-build.js để sao chép các file AWS JS trong quá trình xây dựng để thư mục nhà cung cấp của quận
var Angular2App = require('angular-cli/lib/broccoli/angular2-app');
module.exports = function(defaults) {
return new Angular2App(defaults, {
vendorNpmFiles: [
...
'aws-sdk/**/*.js'
]
});
};
chỉnh sửa bản đồ phần trong hệ thống config.ts để lập bản đồ không gian tên cho file đích
const map: any = {
'aws-sdk': 'vendor/aws-sdk/dist/aws-sdk.js'
};
trong tệp bản thảo của tôi, tôi cố gắng nhập libS AWS.
...
import * as AWS from 'aws-sdk';
...
@Injectable()
export class MyService {
public myMethod() {
var s3 = new AWS.S3();
...
...
...
đây là tất cả tốt cho trình biên dịch bản ghi, tệp nguồn cũng được tải trong trình duyệt nhưng kết quả là lỗi như "S3 không phải là hàm tạo".
nếu bạn gỡ lỗi nội dung, bạn sẽ thấy rằng AWS công cụ được khởi tạo tốt nhưng sau khi "nhập * như AWS từ 'aws-sdk'" được thực thi, AW AWS được khởi tạo với một số đối tượng điên.
do giải pháp của tôi là:
chỉnh sửa package.json để tải tập tin JS từ NPM vào hệ thống địa phương
{
...
"dependencies": {
"aws-sdk": "git://github.com/aws/aws-sdk-js.git#support/typescript"
},
...
}
chỉnh sửa angluar-cli-xây dựng.js để sao chép các file AWS JS trong quá trình xây dựng cho nhà cung cấp thư mục của quận
var Angular2App = require('angular-cli/lib/broccoli/angular2-app');
module.exports = function(defaults) {
return new Angular2App(defaults, {
vendorNpmFiles: [
...
'aws-sdk/**/*.js'
]
});
};
add nhập khẩu kịch bản index.html
<script src="/vendor/aws-sdk/dist/aws-sdk.js" type="text/javascript"></script>
finaly sử dụng nó trong dịch vụ của bạn
// make AWS as 'any' available for typescript compiler
declare var AWS:any;
@Injectable()
export class MyService {
public myMethod() {
var s3= new AWS.S3();
...
...
...
này là một cách hỗn hợp. Sử dụng quá trình xây dựng Angluar 2, sử dụng quản lý gói NPM nhưng không sử dụng định nghĩa kiểu bản ghi AWS.
Bản đánh máy chính thức từ AWS sắp ra mắt ... hy vọng ... https://github.com/aws/aws-sdk-js/issues/994 –