Tôi có một số JavaScript cũ ES5 cũ mà tôi cần phải kéo vào ứng dụng của tôi đang sử dụng webpack như một gói. Vấn đề là vị trí của các tệp này nằm trong thư mục có đường dẫn động. Dường như webpack không hoạt động tốt với các biểu thức trong số require
và require.context
không cho phép chúng.Làm thế nào để yêu cầu JavaScript bằng cách sử dụng webpack từ một thư mục động
Đối với các thư mục con đường được biết đến để yêu cầu tất cả các tập tin trong một thư mục và thư mục con của nó, phương pháp này hoạt động tốt :
let domainRequires = require.context('./app/domain', true, /\.js$/); domainRequires.keys().forEach(domainRequires);
Vì tôi không thể sử dụng một biểu thức trong require.context
, tôi đã cố gắng chỉ sử dụng đơn giản require
và nó được KHÔNG làm việc:
require('../../path/to/code/my-library-' + versionNumber + '/domain/clazz.js');
sử dụng đường dẫn tương đối đầy đủ.
Tôi cũng đã cố gắng sử dụng require.context
nhưng tăng cường phần regex để có được nó làm việc và đã không có may mắn:
require.context('../../path/to/code', true, /^my-library-.*\/domain\/.*\.js$/);
Bất kỳ suy nghĩ, đề nghị, hoặc các giải pháp sẽ được hoan nghênh. Nếu tôi cần phải sử dụng một cái gì đó bên thứ 3 với webpack, đó là tốt quá.
Điều gì sẽ xảy ra nếu bạn có nhiều biến động? Tôi cần phải yêu cầu từ một vòng lặp. Đây là một nỗi đau thực sự. Không biết tại sao họ đã làm cho nó khó thực hiện ... – tylik
Giải pháp này yêu cầu trong một vòng lặp. Xem forEach. @tylik –