2015-06-18 18 views
53

Tôi đang gặp vấn đề sau khi chạy các phiên bản dưới đây của JSPM với Angular2 và SystemJS (Phiên bản: [email protected] với JSPM @ 0.16.0-beta.2 và [email protected]) Đó là một lần các nguyên cảo được biên dịch (không có lỗi) tôi nhận được lỗi sau trong trình duyệt:Angular2 + Jspm.io: phản xạ siêu dữ liệu được yêu cầu khi sử dụng trang trí lớp

/jspm_packages/npm/[email protected]/src/util/decorators.js:70 Uncaught reflect-metadata shim is required when using class decorators 

Bây giờ khi tôi tự bao gồm các tập tin Reflect.js : \ jspm_packages \ npm \ [email protected] \ Reflect.js vấn đề đó biến mất nhưng vấn đề tiếp theo xuất hiện trong danh sách nói là không xác định trong một tệp góc khác.

Xem src bitbucket dưới đây để biết các tập tin cấu hình (mã src) từ cả hai system.js và nguyên cảo/jspm.io

https://bitbucket.org/schippie/angular-2-jspm-hello-world/src/8af83f2066e5e3e9eede7db495545234f3b0c04a

gì tôi đang tự hỏi là nếu nó hiện thậm chí có thể sử dụng jspm cùng với system.js để lấy tất cả các gói góc cần thiết cho góc để hoạt động bình thường. Thấy như cấu hình cho system.js không nêu rõ góc mà phụ thuộc vào nó:

"npm:[email protected]": { 
    "fs": "github:jspm/[email protected]", 
    "path": "github:jspm/[email protected]", 
    "process": "github:jspm/[email protected]", 
    "reflect-metadata": "npm:[email protected]", 
    "rx": "npm:[email protected]", 
    "url": "github:jspm/[email protected]", 
    "zone.js": "npm:[email protected]" 
}, 

Nhưng họ không lấy ra (nhìn vào tab mạng)

Trả lời

13

Robwormald đã viết một lời giải thích độc đáo chi tiết bao gồm các vấn đề mọi người có thể có vào thời điểm này và thời gian cố gắng để có được góc alpha 27 để làm việc với jspm và kiểu chữ https://gist.github.com/robwormald/429e01c6d802767441ec

+0

UPD 15-05-2016, cho Angular2-rc1 sau khi cài đặt ** reflect-metadata ** để khắc phục sự cố này ngay bây giờ tôi gặp lỗi từ Bộ định tuyến – shershen

65

Có, những gì bạn đang tìm kiếm là có thể và hoạt động tốt. Có vẻ như bạn có quyền phụ thuộc. Tôi nghĩ bạn chỉ thiếu những điều sau đây, mà cần phải ở đầu bảng đánh số hoặc tệp JavaScript cấp cao nhất của bạn. Cụ thể, những cần phải được trước dòng đầu tiên là tải Angular.

import 'zone.js'; 
import 'reflect-metadata'; 

(Những điểm câu trả lời khác với một chi tiết, nhưng off-site giải thích.)

+3

Đừng quên thêm 'jspm install reflect-metadata zone.js' . –

+3

Trong khi điều này làm việc, nếu bạn bó nguồn bằng cách sử dụng bundle-sfx nó hoạt động nhưng nó sẽ ném một lỗi 'maximum stack stack size'. Tôi nghĩ, vì angular2 cũng bao gồm phản ánh-siêu dữ liệu và zone.js như phụ thuộc nó gây ra một phụ thuộc vòng tròn ở đâu đó. –

+0

@EvanPlaice Vì tôi nghĩ rằng alpha 46/45 chúng bó zone.js với angularjs. Tôi nghĩ bạn vẫn cần es6-shim và phản ánh siêu dữ liệu. –

4

Nếu vấn đề này xảy ra trong một môi trường 4.4+ kiễu góc, nó có thể giúp đỡ nếu bạn khởi động lại ng serve.

Các vấn đề liên quan