2015-07-08 16 views
9

Tôi vừa nâng cấp lên Ember 1.13.3 và Ember Data 1.13.5 và hiện tôi đang thấy một số thông báo cảnh báo không dùng nữa. Cụ thể là tôi thấy thông báo sau:tìm nguồn lỗi không dùng nữa

Ember.keys is deprecated in favor of Object.keys 

Và cùng với thông điệp mà tôi nhìn thấy dấu vết sau:

at Object._emberMetalCore.default.deprecateFunc [as keys] (http://localhost:3000/assets/frontend/vendor.self.js?body=1:16037:34) 
     at Ember.DefaultResolver.extend.knownForType (http://localhost:3000/assets/frontend/vendor.self.js?body=1:68044:30) 
     at Function.knownForType (http://localhost:3000/assets/frontend/vendor.self.js?body=1:15302:25) 
     at Object.Registry.knownForType (http://localhost:3000/assets/frontend/vendor.self.js?body=1:12666:39) 
     at Object.Registry.knownForType (http://localhost:3000/assets/frontend/vendor.self.js?body=1:12662:39) 
     at Object.discoverKnownHelpers [as default] (http://localhost:3000/assets/frontend/vendor.self.js?body=1:20504:28) 
     at new RenderEnv (http://localhost:3000/assets/frontend/vendor.self.js?body=1:20775:100) 
     at Function.RenderEnv.build (http://localhost:3000/assets/frontend/vendor.self.js?body=1:20783:12) 
     at Object.renderHTMLBarsBlock (http://localhost:3000/assets/frontend/vendor.self.js?body=1:20831:56) 

Tôi đang gặp khó khăn trong việc hiểu làm thế nào tôi có thể theo dõi nguồn gốc của những lời cảnh báo từ deprecation dấu vết ở trên.

+0

Phải. Những cảnh báo không dùng nữa này khá khó hiểu và khó theo dõi. Cách tiếp cận của tôi là grep trên toàn bộ ứng dụng cho 'Ember.keys'. –

Trả lời

7

Hầu như tất cả các cảnh báo không dùng nữa là do Ember Data/HTMLBars, hoặc nhảy lên các phiên bản sau hoặc đợi.

Trong dấu vết ngăn xếp cụ thể của bạn, nó không bao giờ đề cập đến mã của bạn, chỉ là mã nhà cung cấp. Vì vậy, đó là tiện ích bổ sung của bên thứ ba hoặc đó là những gì tôi đã đề cập trước đây.

4

Tôi cũng đã nâng cấp lên Ember 1.13.3 và Dữ liệu 1.13.5 và nhận thông báo không dùng nữa của Ember.keys.

Đối với tôi, nó xuất phát từ bộ nạp khởi tạo trong gói bộ khởi tạo ember-load-initializers.

Dường như điều này được khắc phục ở đây https://github.com/ember-cli/ember-load-initializers/commit/78470bed646d76e176c1bc405796b3aeb01940f5 và được bao gồm trong bản phát hành tải-khởi chạy ember 0.1.5.

Có vẻ như phiên bản này đã tạo bản phát hành Ember CLI 1.13.1 để cập nhật Ember CLI sẽ loại bỏ thông báo phản đối trong trường hợp này.


Cập nhật Tôi cũng tiếp tục nhận được tin nhắn deprecation và bower_components greping Tôi không thể nhìn thấy nơi từ. Hóa ra họ đến từ chính Thanh tra Ember (v1.8.3), vì vậy luôn luôn đáng để kiểm tra nhanh ở đó. Chúng đã được sửa chữa rồi (https://github.com/emberjs/ember-inspector/commit/31cc1331e14660084ba3702559afbdff67b973d6) vì vậy bản phát hành kế tiếp nên loại bỏ phần còn lại.

+0

tuyệt vời, điều này làm việc. – Moh

2

Khó khăn tại thời điểm này để đi qua tuyến đường theo dõi để xác định nơi cảnh báo ngừng sử dụng đến từ đó. Tuy nhiên, những gì tôi đã làm như sau:

cd project_directory 
ack Ember.keys > output 

Điều này sẽ xuất kết quả vào tệp có tên output. Mở nó và bạn sẽ thấy những tập tin nào vẫn đang sử dụng cú pháp cũ. Ví dụ: trong trường hợp của tôi:

node_modules/ember-disable-proxy-controllers/dist/assets/vendor.js` 

Line 60458. Tại thời điểm này, bạn có thể liên hệ với tác giả để đề xuất sửa chữa. Tôi tin rằng giải pháp sẽ thay thế tất cả các trường hợp của Ember.keys bằng một cái gì đó hợp lý hơn như (Object.keys || Ember.keys).

Nhưng xin lưu ý rằng đây là cảnh báo không dùng nữa (nên được giải quyết trong tương lai, lý tưởng) và không nên ảnh hưởng đến mã.

+1

ý tưởng tốt bằng cách sử dụng ack để tìm kiếm thông qua các phụ thuộc. – Francois

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