2015-12-29 25 views
1

當採用模塊化JavaScript方法進行開發時,使用Node.JS + npm和browserify捆綁到瀏覽器,如何處理這種情況,您可能需要使用不是以npm分發的JavaScript庫?最終,這些庫甚至不兼容模塊化(amd/commonJs),因爲它們不以模塊化方式暴露任何東西。它們中的一些存在於bower中,我知道對於這些情況,有諸如browserify transform debowerify之類的資源,但如果預期的庫本身並不像模塊那樣工作,那將無濟於事。JavaScript節點模塊和純腳本引用如何在瀏覽器中共存?

所以,我也想弄清楚的是:一旦你已經通過node.js + npm模塊採用了模塊化JavaScript的路徑,是否達不到模塊兼容的任何庫的使用?

讓我把一個具體的例子:

我已經和main.js入口點的應用程序(NPM安裝包淘汰賽),用類似的代碼:

變種KO =需要(「淘汰賽」) ;

我知道當這個ko變量通過browserify傳到瀏覽器時,它並沒有綁定到全局作用域,而是有自己的作用域,基本上包含了由npm加載的敲除文件/模塊中定義的所有內容。

然後我有一個第三方庫,它不是一個節點模塊,它通過使用knockout來提供dom操作。我必須爲第三方庫提供前提條件,作爲額外的明確<script>標記,在我的html文件中引用基因敲除,這種方式將其掛鉤到全局(窗口)範圍。然後我會在兩個地方淘汰賽,但是彼此隔離。例如,我的main.js中的一個ko.applyBindings對於依賴於全局範圍的挖空的另一個庫是未知的。

如何(如果可能的話)我的模塊化JavaScript實現處理這些雙方共存的dom操作?或者對於這種情況,它是一種必須採用的互斥編程模式(所有模塊還是所有非模塊)?

+0

看看這個http://stackoverflow.com/questions/5171213/load-vanilla-javascript-libraries-into-node-js –

回答

相關問題