Một số nền ngắn gọn: Tôi đang sử dụng browserify và browserify-shim (và gulp để xây dựng) để tạo một ứng dụng web. Trước khi vấn đề này, tôi đã được require
ing jquery từ npm vì vậy tôi đã không có vấn đề. Khi tôi bắt đầu thực hiện một số tối ưu hóa, tôi đã nhận ra khối lượng lớn của gói với jQuery bao gồm. Vì vậy, bây giờ tôi lấy jQuery từ một CDN với thẻ script và đặt nó trước tệp bundle.js. Nhưng tôi có vấn đề tuyên bố jQuery như là một plugin toàn cầu và đúng cách của tôi jQuery plugin trong trình duyệt và trình duyệt-shim. Khi tôi chạy ngụm để xây dựng, tôi vẫn gặp lỗi tương tự:Sử dụng Browserify với jQuery Plugins
[gulp] gulp-notify: [Compile Error] module "jquery" not found from "/Volumes/Chetan/Users/cshenoy/Projects/urbanstems-node/app/plugins/jquery.inview.js"
Nó có vẻ như browserify-shim không nhặt về jQuery là một toàn cầu.
Để tham khảo, tôi đang sử dụng inview plugin.
Dưới đây là package.json của tôi với các bộ phận có liên quan
"browser": {
"inview": "./app/plugins/jquery.inview.js"
},
"browserify-shim": {
"jquery": "global:jQuery",
"inview": {
"depends": [
"jquery"
]
}
}
Hãy cho tôi biết những gì khác tôi có thể bao gồm để giúp chẩn đoán lỗi.
Tôi tò mò về việc đi theo hướng ngược lại. Khi bạn 'yêu cầu ('jquery')' từ npm, làm cách nào bạn có thể hiển thị nó trên toàn cầu để các plugin vẫn hoạt động? –
Tôi đã không phơi bày nó trên toàn cầu khi tôi cài đặt nó từ npm. Giá trị cho jquery bên trong browserify-shim sẽ là $ hoặc jQuery. Sau đó, tất cả các plugin phụ thuộc vào jQuery của bạn sẽ được liệt kê bên dưới nó với trường phụ thuộc danh sách jquery. –