如果我想用Coffeescript編寫節點模塊,但是不希望強制模塊用戶需要coffee-script
模塊,是否有推薦的方法來開發節點模塊?使用Coffeescript開發節點模塊的標準方法?
回答
將CoffeeScript代碼放在src
文件夾中,並將lib
文件夾中已編譯好的JavaScript代碼放入文件夾中。
然後在您的package.json
文件中,聲明main
是lib
文件夾中的js文件。然後你的包的用戶將需要js文件而不是咖啡文件。
你可以拿@ TrevorBurnham的repository爲例。
我結束時,我的git存儲庫上只有一個src
文件夾;一個.gitignore
文件,其中一行爲lib
;和一個空的.npmignore
文件。需要使用空的.npmignore
文件,因爲如果它不在您的模塊上,則會使用您的.gitignore
。
我只是增加了一個Cakefile
與任務使用coffee --compile --output lib/ src/
和pretest
和prepublish
任務package.json
測試和發佈前,建建我src
目錄。
"scripts": { "pretest": "cake build", "prepublish": "cake build", }
該解決方案使我的git倉庫乾淨(編譯的代碼),但增加了我的javascript代碼發佈到NPM時庫。
你可以在https://github.com/reaktivo/zootool – 2012-01-19 22:21:35
上看到這個工作。注意:這對於「npm install reaktivo/zootool」不起作用。有人可能想要做類似的事情,如果他們分叉你的回購,並等待你拿他們的補丁。 – 2015-07-12 00:21:57
我剛開始接觸的CoffeeScript,但我建議如下:
- Store中的CoffeeScript代碼
src/*.coffee
, - 寫
main.js
在項目的根目錄NPM來抓,並有它只是做一些像require('coffee-script'); require('./src/my_lib.coffee')
。
那裏。你永遠不會編譯你的代碼;它都是透明處理的。您不會將編譯後的代碼檢查到git中,也不會將未編譯的CoffeeScript與未編譯的CoffeeScript一起發佈爲NPM。
編輯: 在較新版本咖啡scirpt,你應該require('coffee-script/register');
感覺像使咖啡腳本成爲您未開發模塊的要求並不是最好的主意。 – 2013-01-31 18:09:19
我不確定我是否理解上述評論 - 如何讓'coffee-script'具有與'underscore'不同的依賴關係? – lambinator 2014-11-17 20:13:51
Underscore是一個庫,而CoffeeScript是一種編譯語言。您需要運行時庫的功能。用編譯語言你不(必然)。所有你需要的是生成的代碼。 (如果它是一種解釋型語言,*會在運行時需要功能。) – 1j01 2015-04-10 17:16:57
- 1. 節點JS覆蓋標準模塊
- 2. 如何選擇使用標準JavaScript方法的節點數組
- 3. 對本地主機開發節點使用`net_adm`模塊功能
- 4. 節點「--inspect」標誌與Coffeescript
- 5. 試圖存根節點模塊內使用的方法
- 6. 節點正方體模塊無法打開文件
- 7. 發送標準輸出/標準錯誤使用節點,並表示
- 8. 使用requirejs和typescript的節點模塊
- 9. 模式的CoffeeScript的模塊
- 10. 節點中的R.js和Coffeescript節點
- 11. 檢查使用茉莉節點加載的節點模塊
- 12. 用戶模塊 - 節點js
- 13. CoffeeScript使用NPM和節點安裝
- 14. 使用異步模塊節點
- 15. 在Angularjs中使用節點模塊
- 16. 如何使用節點模塊?
- 17. 在Laravel中使用節點模塊
- 18. 節點,模塊使用結構
- 19. 在Angular 2中使用節點模塊
- 20. 如何正確使用節點模塊
- 21. 節點模塊使用錯誤
- 22. 如何使用節點模塊kappa?
- 23. 節點http模塊
- 24. 爲節點模塊
- 25. 沒有模塊開發的點網核?
- 26. 節點JS HBS模塊和發動機
- 27. Drupal 6模塊開發 - 多節點類型,權限和訪問
- 28. 生產和開發中需要哪些節點模塊?
- 29. 使用typescript的節點項目的首選模塊語法
- 30. 在線開發中使用Maven的標準方式
它那種感覺怪怪提交編譯的代碼,但我想我會嘗試。 – 2012-01-18 17:18:26
git存儲庫鏈接到npm?因爲如果不是這樣,我可以在npm發佈之前生成lib文件夾,並在之後將其刪除。 – 2012-01-18 17:25:43
@MarcelM。不是。順便說一句,你可以使用.gitignore忽略'lib'文件夾而不是刪除它。 – qiao 2012-01-18 17:42:57