Có cách nào đề xuất phát triển một mô-đun nút nếu tôi muốn viết nó trong Coffeescript, nhưng không muốn buộc người dùng của mô-đun yêu cầu mô-đun coffee-script
?Cách tiêu chuẩn để phát triển mô đun nút bằng Coffeescript?
Trả lời
Đặt mã CoffeeScript của bạn trong thư mục src
và mã JavaScript được biên dịch trong thư mục lib
.
Sau đó, trong tệp package.json
, hãy khai báo main
làm tệp js trong thư mục lib
. Sau đó, người dùng gói của bạn sẽ yêu cầu tệp js thay vì tệp cà phê.
Bạn có thể lấy @ TrevorBurnham's repository làm ví dụ.
Tôi đã kết thúc bằng chỉ một thư mục src
trên kho lưu trữ git của mình; tệp .gitignore
có một dòng cho lib
; và tệp rỗng .npmignore
. Cần có tệp .npmignore
trống vì nếu không có trên mô-đun của bạn, thay vào đó, .gitignore
của bạn được sử dụng.
Tôi chỉ cần thêm một Cakefile
với một nhiệm vụ để xây dựng thư mục src
tôi sử dụng coffee --compile --output lib/ src/
và pretest
và prepublish
nhiệm vụ để package.json
để xây dựng trước khi thử nghiệm và xuất bản.
"scripts": { "pretest": "cake build", "prepublish": "cake build", }
Giải pháp này giữ kho git của tôi sạch (không có mã biên dịch), nhưng thêm mã javascript của tôi để lib khi xuất bản vào NPM.
Bạn có thể thấy điều này làm việc tại https://github.com/reaktivo/zootool –
Lưu ý: điều này không (chưa) làm việc cho "npm install reaktivo/zootool". Ai đó có thể muốn làm một cái gì đó tương tự nếu họ chia đôi repo của bạn và đang chờ bạn để có bản vá của họ. –
Tôi chỉ bắt đầu với CoffeeScript, nhưng tôi muốn đề nghị như sau:
- Mã cửa hàng CoffeeScript của bạn trong
src/*.coffee
, - Viết
main.js
trong thư mục gốc của dự án mà NPM sẽ nắm bắt, và có nó chỉ đơn giản là làm một cái gì đó nhưrequire('coffee-script'); require('./src/my_lib.coffee')
.
Ở đó. Bạn không bao giờ, bao giờ biên dịch mã của bạn; tất cả được xử lý một cách minh bạch. Bạn không kiểm tra mã được biên dịch thành git, cũng như bạn không xuất bản JavaScript được biên dịch thừa cùng với CoffeeScript chưa được biên dịch sang NPM.
Edit: Trong nhiều phiên bản gần đây cà phê scirpt, bạn nên require('coffee-script/register');
Cảm thấy giống như làm cho 'cà phê-script' một yêu cầu cho một mô-đun bạn không phát triển không phải là ý tưởng tốt nhất. –
Tôi không chắc là tôi hiểu được chú thích ở trên - làm thế nào để có 'cà phê-script' một phụ thuộc khác với việc có' gạch dưới' như là một phụ thuộc? – lambinator
Dấu gạch dưới là một thư viện, trong khi CoffeeScript là một ngôn ngữ được biên dịch. Bạn cần chức năng của thư viện khi chạy. Với một ngôn ngữ biên dịch bạn không (nhất thiết). Tất cả những gì bạn cần là mã kết quả. (Nếu đó là ngôn ngữ diễn giải, bạn * sẽ * cần chức năng trong thời gian chạy.) – 1j01
- 1. Mô-đun Node.js.exports trong CoffeeScript
- 2. Phát triển mô-đun DotNetNuke với webservices
- 3. Tiêu chuẩn mã hóa để phát triển ứng dụng iphone
- 4. Node JS ghi đè lên mô-đun tiêu chuẩn
- 5. Làm cách nào để chọn mô-đun nút?
- 6. Hướng dẫn phát triển mô-đun trong Drupal
- 7. Bản đồ nguồn CoffeeScript để phát triển nodeJS
- 8. Thư viện/mô-đun Nodejs để phát triển các ứng dụng CLI tương tác?
- 9. WPF - Tạo các nút bằng mũi tên lên và xuống bằng các nút tiêu chuẩn
- 10. Bắt mô-đun python để làm việc cho một mô-đun được triển khai trong C
- 11. Bao nhiêu để phát triển bộ đệm trong mô-đun C giống như StringBuilder?
- 12. Làm thế nào để phát triển một tiêu chuẩn (C# so với VB.NET)
- 13. cách gỡ cài đặt mô-đun npm trong nút js?
- 14. Nút ném lỗi trên mô-đun ansi
- 15. Làm thế nào để nhập khẩu tiêu chuẩn thư viện thay vì mô-đun cùng tên trong đường dẫn mô-đun
- 16. Làm cách nào để ghi lại mô-đun bằng Python?
- 17. Làm cách nào để triển khai chỉ các mô-đun phụ sử dụng triển khai maven?
- 18. Làm thế nào để sử dụng mô-đun node.js 'nodeunit' với các tệp coffeescript
- 19. Cách lấy tiêu đề của mô-đun trong Joomla 2.5?
- 20. Cách truy cập mô-đun thư viện chuẩn trong Python khi có mô-đun cục bộ có cùng tên?
- 21. Tại sao không tiêu chuẩn hibernate Tiêu chuẩn generics
- 22. Phát hiện mô-đun nào khác được bật trong mô-đun Drupal mới
- 23. CoffeeScript, triển khai 'thực hiện'
- 24. Phát triển ứng dụng android trong các mô đun làm việc riêng biệt
- 25. Mô-đun mô-đun nhập mô-đun chính
- 26. Có thư viện biểu tượng mở tiêu chuẩn cho nhà phát triển web không?
- 27. Có cách nào tiêu chuẩn để triển khai các sự kiện "Có thể phủ nhận" không?
- 28. Tại sao Sun phát minh ra một hệ thống mô-đun khác khi mọi người đã chuẩn hóa trên OSGi?
- 29. nút jitsu không thể tìm thấy mô-đun địa phương
- 30. F # Mô-đun Seq được triển khai trong C# cho IEnumerable?
Nó loại cảm giác kỳ lạ cam kết mã biên dịch, nhưng tôi đoán tôi sẽ cố gắng đó. –
Kho lưu trữ git có được liên kết với npm không? Bởi vì nếu không, tôi có thể tạo thư mục lib ngay trước khi npm xuất bản và xóa nó sau. –
@MarcelM. Nó không phải. BTW, bạn có thể sử dụng .gitignore để bỏ qua thư mục 'lib' thay vì xóa nó. – qiao