我在CommonJS編寫的一些需要高質量UMD包裝的JavaScript模塊上進行維護和協作。具有依賴關係的UMD Ultimate JS模塊解決方案?
依賴關係源自npm
,但至少支持CommonJS和AMD(或者我可以添加它)。
的CommonJS的版本的推移npm
的UMD包裝的模塊將被推到bower
的包裝必須工作在瀏覽器(AMD +全局),並在Node.js的(任何和其他CommonJS的系統如果可能的話)。任何自動化應該最好使用Grunt(我在grunt中非常方便)發生。
我已經花了不少時間去搜索谷歌,但它是一個巨大的混亂。
一些希望那些不太削減它(或者我失去了一些東西,這是完全可能的):
- browserify
- gluejs
- 咕嚕-UMD
我在這裏找到了像這樣絕望的結構:http://rathercurio.us/building-umd-modules-with-dependencies-with-browserify,但我對這樣的駭客並不是很酷。
對此有什麼好的提示?我會採取任何指針或鏈接或提示。
編輯:澄清:最後一件事說,理想的解決方案不應該要求我們手工組裝大塊樣板模板代碼並創建新的錯誤。我很喜歡配置和指定的東西。
HTTP着:// urequire。組織/做出一些大膽的聲明:)但假設它交付它可能是一個很好。你是否還支持源代碼映射(包括轉換/合併?)我使用TypeScript和'grunt_concat_sourcemap'很多(都生成映射),當然更願意調試原始源代碼,即使在將它們取回到AMD之後也是如此。 – Bartvds
好吧,如果它提供了:-) uRequire開始作爲一個簡單的轉換AMD到UMD的寵物項目,但是許多功能都是在將它轉換成可以執行90%常見任務的工具之後添加的可以在一個典型的grunt文件中找到,只有[10%的努力和樣板](http://urequire.org/masterdefaultsconfig.coffee#examples)。不幸的是,源代碼和TypeScript是兩個功能,它還沒有觸及,但應該:-( –
我真的很喜歡UMD的功能,它是非常酷的技術。只有我總是傾向於使用我自己選擇的(typescript)編譯器(這裏grunt -ts)對於一個高級用戶來說,一個特定的人將會擁有更多的功能,然後是一個通用的捆綁版本(「做一件事,做得很好」)。但是源代碼生成(和轉換)幾乎是現在需要的。我們還將如何調試生成的代碼?通過手動從bundle中查找,通過我們曾經到過的任何管道進行查找?那是2010 :) – Bartvds