2013-11-27 147 views
1

我在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,但我對這樣的駭客並不是很酷。

對此有什麼好的提示?我會採取任何指針或鏈接或提示。

編輯:澄清:最後一件事說,理想的解決方案不應該要求我們手工組裝大塊樣板模板代碼並創建新的錯誤。我很喜歡配置和指定的東西。

回答

2

您的第一站也是最後一站應該是urequire.org,這是通用模塊轉換器,它只是將CommonJS和AMD javascript模塊轉換爲UMD(或AMD或CommonJS或使用rjs/almond的獨立設備)。

它允許您操作模塊的代碼和相關性,同時轉換:注入,替換或刪除代碼和依賴,出口到全球的對象(window)或你的包,注入&可選合併通用代碼(如初始化),添加運行時信息,縮小和更多。

其中大部分使用簡單但非常強大的聲明&可選回調細粒度操作。它與獨立的配置文件(.js.coffee.json.yml等),按原樣作爲gruntjs config

uRequire從JavaScript編寫的源模塊編譯,CoffeeScript的,livescriped,可可& icedcoffeescript沒有任何插件。

忘記樣板,代碼儀式和重複要求。轉換模板基於衆所周知的UMDjs,但可以通過聲明進行定製以隱藏或提供功能。

uRequire是開源的,MIT許可證和hosted on github和我:-)

+0

HTTP着:// urequire。組織/做出一些大膽的聲明:)但假設它交付它可能是一個很好。你是否還支持源代碼映射(包括轉換/合併?)我使用TypeScript和'grunt_concat_sourcemap'很多(都生成映射),當然更願意調試原始源代碼,即使在將它們取回到AMD之後也是如此。 – Bartvds

+0

好吧,如果它提供了:-) uRequire開始作爲一個簡單的轉換AMD到UMD的寵物項目,但是許多功能都是在將它轉換成可以執行90%常見任務的工具之後添加的可以在一個典型的grunt文件中找到,只有[10%的努力和樣板](http://urequire.org/masterdefaultsconfig.coffee#examples)。不幸的是,源代碼和TypeScript是兩個功能,它還沒有觸及,但應該:-( –

+0

我真的很喜歡UMD的功能,它是非常酷的技術。只有我總是傾向於使用我自己選擇的(typescript)編譯器(這裏grunt -ts)對於一個高級用戶來說,一個特定的人將會擁有更多的功能,然後是一個通用的捆綁版本(「做一件事,做得很好」)。但是源代碼生成(和轉換)幾乎是現在需要的。我們還將如何調試生成的代碼?通過手動從bundle中查找,通過我們曾經到過的任何管道進行查找?那是2010 :) – Bartvds

相關問題