Tôi nhận được ba thông báo cảnh báo khi nhập request
vào một dự án webpack khung. Một ví dụ tối thiểu để tái tạo lỗi có sẵn trên GitHub (chạy npm install
và npm start
).
Critical dependency: the request of a dependency is an expression
Làm cách nào để thoát khỏi cảnh báo này?
Thêm thông tin:
Webpack cố gắng giải quyết require
các cuộc gọi một cách tĩnh để tạo ra một gói tối thiểu. Khi một thư viện sử dụng các biến hoặc biểu thức trong một yêu cầu cuộc gọi (như require('' + 'nodent')
ở những dòng này của ajv
), Webpack không thể giải quyết chúng tĩnh và nhập khẩu toàn bộ gói.
Cơ sở lý luận của tôi là quá trình nhập động này không được mong muốn trong quá trình sản xuất và mã tốt nhất là không có cảnh báo. Điều đó có nghĩa là tôi muốn có bất kỳ giải pháp nào giải quyết được vấn đề. Ví dụ:
- Định cấu hình webpack theo cách thủ công để nhập các thư viện cần thiết và ngăn các cảnh báo xảy ra.
- Thêm
hack.js
tệp vào dự án của tôi để ghi đè các lệnh gọi yêu cầu theo một cách nào đó. - Nâng cấp thư viện của tôi.
ajv-5.0.1-beta.3
có một bản sửa lỗi làm im lặng các cảnh báo. Tuy nhiên, nếu tôi muốn sử dụng nó, tôi phải đợi cho đến khi nó được phát hành, sau đó đếnhar-validator
vàrequest
phát hành các bản cập nhật tiếp theo. Nếu có một cách để buộchar-validator
sử dụng phiên bản beta củaajv
, điều đó sẽ giải quyết được vấn đề của tôi. - Khác