MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Không tìm thấy mô-đun:Lỗi:Không thể giải quyết mongodb mô-đun 'mô-đun' trong khi đóng gói với webpack

Khi Webpack đóng gói các mô-đun của bạn, nó sẽ tuân theo chuỗi phụ thuộc của mô-đun mà bạn đã nhập (hoặc bắt buộc) và kéo tất cả các phụ thuộc của nó vào và cũng nhóm chúng đến tận cuối chuỗi.

Nếu có một tệp mà nó không biết cách tải trong chuỗi phụ thuộc đó thì loại lỗi này sẽ được tạo ra.

Điều này đôi khi có thể được giải quyết bằng cách thêm một trình tải biết cách tải loại phụ thuộc này. Tuy nhiên, nếu phần phụ thuộc là một mô-đun không phải gốc thì Webpack không thể tải nó. Một số trình tải biết cách tải các mô-đun với các phần phụ thuộc không phải gốc bằng cách khai thác và loại trừ phần không phải gốc để nó sẽ tải. Trong fs ví dụ, bạn không cần có khả năng đọc và ghi tệp từ đĩa vì trình duyệt không thể làm điều đó nên không cần bao gồm phần đó.

Điều này đặt ra câu hỏi:Bạn cần chức năng nào từ mô-đun mongoose trong trình duyệt? Bạn có thể chỉ bao gồm chức năng đó chứ không phải toàn bộ mô-đun mongoose không?

Nếu bạn có thể làm được điều này thì bạn có thể giải quyết được 2 vấn đề:

  1. Bạn có thể giải quyết vấn đề gói Webpack vì phần mongoose mà bạn đưa vào dự án của mình không có các phần phụ thuộc con có vấn đề.
  2. Bạn sẽ tạo một gói nhỏ hơn với Webpack vì bạn sẽ chỉ bao gồm những phần bạn cần để tải trọng của gói.js cho khách hàng sẽ nhỏ hơn nhiều.

Ví dụ, gần đây tôi cần sử dụng trình tạo ObjectId mongodb trong máy khách. Tôi phát hiện ra rằng Webpack không thể đối phó với import mongodb from 'mongodb' vì vậy khi đào sâu vào các phần phụ thuộc, tôi thấy rằng mongodb phụ thuộc vào mongodb-core cái này phụ thuộc vào bsonObjectId phương pháp tôi cần.

Bằng cách chỉ nhập bson thành phần của chuỗi phụ thuộc đó, tôi đã giải quyết được vấn đề Webpack và làm cho gói của tôi nhỏ hơn nhiều.

Nếu bạn đang sử dụng Npm 3 thì rất có thể bson được cài đặt trong thư mục gốc của node_modules nếu bạn đã sử dụng mongoose hoặc mongodb để bạn có thể import nó mà không đặt tham chiếu rõ ràng đến nó trong package.json của bạn . Điều này rõ ràng mang lại rủi ro rằng nếu sự phụ thuộc trên ngừng phụ thuộc vào nó thì bản dựng của bạn sẽ bị hỏng và bạn sẽ cần phải npm install nó độc lập. Ưu điểm của việc sử dụng phương pháp này là bạn sẽ luôn sử dụng cùng một phiên bản của bson mà phần phụ thuộc phía trên đang sử dụng có thể quan trọng.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Những lý do nên và không nên chuyển từ máy chủ SQL sang MongoDB

  2. Làm cách nào để sắp xếp một bộ sưu tập dựa trên các giá trị trong một mảng

  3. tạo chỉ mục được bao phủ cho khung tổng hợp

  4. Làm thế nào để trả lại các giá trị biến thể của mỗi sản phẩm nếu sản phẩm đó là một biến thể?

  5. MongoDB:Tìm phần tử tối thiểu trong mảng và xóa nó