Tôi đã tạo ra một mô-đun nút về cơ bản chỉ là một số JS hữu ích mà cũng có thể được sử dụng phía máy khách. Tôi biết rằng require.js có thể tải các thành phần common.js, nhưng tôi không nhất thiết muốn thực hiện ủy nhiệm rằng tất cả những người sử dụng phía máy khách mô-đun của tôi cũng cần yêu cầu hoặc common.js hoặc một cái gì đó. Tôi cũng không muốn buộc họ xóa module.exports = ...
ở cuối tệp. Người khác giải quyết vấn đề này như thế nào? Bạn chỉ cần tạo 2 phiên bản hoặc 2 phiên bản "được biên dịch" chứ? Module.exports có hoạt động ở mọi nơi không?module.exports phía máy khách
18
A
Trả lời
16
Đây là những gì underscore.js làm:
if (typeof exports !== 'undefined') {
if (typeof module !== 'undefined' && module.exports) {
exports = module.exports = _;
}
exports._ = _;
} else {
root['_'] = _;
}
4
này đã làm việc cho tôi (CoffeeScript). Giả 'Namespace' là những gì bạn muốn khẳng định trên phạm vi window
cho khách hàng
(module ? {}).exports = @Namespace =
my: 'cool'
module: '!'
Sau đó, bạn có thể sử dụng require('namespace').my === 'cool'
trong Node.js hoặc Namespace.my === 'cool'
trong trình duyệt. Điều này được chuyển vào JS như
(typeof module !== "undefined" && module !== null ? module : {}).exports = this.Namespace = {
my: 'cool',
module: '!'
};
1
Tôi tìm thấy điều này đơn giản hơn:
try {
module.exports = exports = MyModule;
} catch (e) {}
Tập tin này có thể được bao gồm trong cả hai trình duyệt và node.js.
Các vấn đề liên quan
- 1. XSLT phía máy khách
- 2. Ruby: phía máy khách hoặc phía máy chủ?
- 3. Phía máy khách bao gồm phía máy chủ bao gồm?
- 4. Ngôn ngữ phía máy khách
- 5. pjax hoặc phía máy khách MVC?
- 6. Meteor Npm-module phía máy khách?
- 7. ASP.NET: thêm điều khiển phía máy khách
- 8. Gọi lại phía máy khách trong GWT
- 9. Thư viện phía máy khách Java WebDAV
- 10. xử lý ảnh ở phía máy khách
- 11. Cài đặt phía máy khách Meteor
- 12. Hình ảnh cắt xén phía máy khách
- 13. Phân trang phía máy khách với jqGrid
- 14. Mongodb phía máy khách javascript api
- 15. Socket.io trên Heroku: mã phía máy khách
- 16. Nhanh như thế nào là phía máy khách javascript so với phía máy chủ Java?
- 17. Tạo xác nhận hợp lệ phía máy khách và phía máy chủ trong Symfony2
- 18. Khi nào nên sử dụng phía máy khách hoặc phía máy chủ?
- 19. Xác thực người dùng G + ở phía máy chủ, sau khi đăng nhập phía máy khách
- 20. ASP.NET: Đồng bộ hóa quy tắc xác thực phía máy khách và phía máy chủ
- 21. Là phía máy khách xác thực JSF hay phía máy chủ?
- 22. Xác thực nhập của người dùng, phía máy khách hoặc phía máy chủ? [PHP/JS]
- 23. Cách xác nhận đăng nhập ứng dụng Facebook phía máy khách từ phía máy chủ
- 24. Tại sao chính xác là hiển thị HTML phía máy chủ nhanh hơn phía máy khách?
- 25. Emberjs, phía máy chủ và phía máy khách, Tất cả trong?
- 26. Phía máy chủ hoặc phía máy khách để tìm nạp tweet?
- 27. Node.js: Tem phía máy khách v/s Templating phía máy chủ
- 28. Cách chuyển mảng từ phía máy chủ Asp.net sang hàm Javascript ở phía máy khách
- 29. Thực hiện xác thực Facebook: Phía máy khách và phía máy chủ
- 30. Giới hạn tốc độ api của Facebook - phía máy chủ hoặc phía máy khách tốt hơn?
Giải thích tốt nhất về chủ đề này tôi biết là http://www.2ality.com/2011/11/module-gap.html. Tác giả thảo luận về các ưu điểm/nhược điểm và chế độ triển khai/triển khai. –