2016-02-16 25 views
5

Tôi có một kịch bản mà nhập khẩu rất nhiều các module AMD và gọi một phương thức khởi tạo trên mỗi một:ES6: nhập khẩu nhiều file

define(['underscore', './mod0', ..., './modN'], function (_) { 
    _.each(_.toArray(arguments).slice(1), function (m) { 
     init(m); 
    }); 
}); 

tôi cần phải chuyển sang cú pháp nhập khẩu ES6 và tôi đang cố gắng tìm ra nếu có thể nhập các mô-đun từ một danh sách, theo cách tương tự như mã AMD của tôi. Tôi muốn tránh sự điên rồ như:

import mod0 from './mod0'; 
... 
import modN from './modN'; 

init(mod0); 
... 
init(modN); 

Bất kỳ lời khuyên nào về cách thực hiện điều này? cảm ơn!

Trả lời

5

Có thể nhập mô-đun từ danh sách không?

Không, không yêu cầu rõ ràng trình tải mô-đun của bạn (tùy theo điều kiện nào). Không có cách nào để thực hiện việc này bằng cách sử dụng các khai báo import.

Bất kỳ lời khuyên nào về cách thực hiện điều này?

eval có thể có thể làm điều đó :-)

tôi sẽ khuyên bạn sử dụng hai mô-đun:

// index.js 
export mod0 from './mod0'; 
… 
export modN from './modN'; 

// init-all.js 
import * as modules from './index'; // enumerable namespace 

for (var moduleIdentifier in modules) 
    init(modules[moduleIdentifier]); 

Bạn có khả năng có thể làm tương tự với chỉ một module đơn (mà tự nhập khẩu như một đối tượng không gian tên mô-đun), nhưng điều đó chắc chắn sẽ là sự điên rồ thực sự.

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