Tôi nhận được ba thông báo cảnh báo khi nhập request
trong dự án webpack barebone. 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
).Webpack - phụ thuộc quan trọng: yêu cầu của phụ thuộc là biểu thức
Critical dependency: the request of a dependency is an expression
Tôi làm cách nào để loại bỏ cảnh báo này?
Thông tin thêm:
Webpack cố gắng giải quyết require
cuộc gọi tĩnh để thực hiện một bó tối thiểu. Khi một thư viện sử dụng các biến trong một cuộc gọi yêu cầu (chẳng hạn như these lines trong ajv
), Webpack không thể giải quyết chúng tĩnh và nhập toàn bộ gói.
Lý do cơ bản của tôi là nhập động động này không được mong muốn trong sản xuất và mã được giữ nguyên nhất là cảnh báo. Điều đó có nghĩa là tôi muốn bất kỳ giải pháp nào giải quyết được vấn đề. Ví dụ:
- Định cấu hình webpack để nhập thư viện bắt buộc theo cách thủ công và ngăn cảnh báo xuất hiện.
- Thêm một tệp
hack.js
vào dự án của tôi ghi đè yêu cầu cuộc gọi 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ó 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 chờ cho đến khi nó được phát hành, và sau đó cho đến khihar-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 betaajv
, điều đó có thể giải quyết được sự cố của tôi. - khác
1. https://github.com/epoberezkin/ajv/issues/117#issuecomment-198328830 2. Tôi không nghĩ nó sẽ hoạt động 3. bạn sẽ phải chờ một chút. – esp
@esp: nhận xét github có vẻ là những gì tôi đang tìm kiếm, nhưng nó không làm im lặng các cảnh báo. Nếu tôi thay đổi nó thành 'new webpack.IgnorePlugin (/ async /,/ajv /)', hai trong số ba cảnh báo đã biến mất nhưng webpack 'Không thể tìm thấy module" ../ async "'. Bất kỳ ý tưởng về giá trị phép thuật thích hợp để làm cho nó hoạt động? – Jodiug