2016-03-22 168 views
0

我有一種依賴關係樹是這樣的:避免捆綁特定模塊與Browserify

index.js 
     \__ A 
     \__ B 
      \__ C 
      | \__ D 
      \__ E 

我希望捆綁index.js和工作正常:browserify --node index.js -o bundle.js

的問題是當一個依賴具有相關性。我們假設它是D,它具有本地依賴(C++代碼)。

我想使用npm install D手動安裝它,並使bundle.js真正需要從磁盤而不是從bundle.js代碼。

如何從包中排除D模塊並使包從node_modules中獲取?

我試過使用--ignore D,但它在需要時返回一個空對象。

我怎樣才能requirenode_modules目錄(如Node的require的方式一個真正的模塊確實

+1

這樣做的意義何在? – undefined

+0

@Vohuman基本上我有一些不是真正公開的*,我想創建一個包含所有這些代碼的babelified和minified的包。但代碼是用於服務器端的(這就是爲什麼我使用'--node'標誌)。我只想忽略使用本地依賴的'D'模塊並使用'npm install'安裝它。它有點清晰嗎? –

回答

1

--node一起使用--exclude選項:

browserify --node -s GlobalVariable your-script.js -o bundle.js --exclude some-dependency 

這將創建bundle.js文件,該文件會如果沒有CommonJS環境,則定義GlobalVariable變量。

--node是一個方便的選項,如果你想運行在節點,而不是在瀏覽器中的包。

--exclude選項將從輸出包中排除some-dependency模塊。

檢查出Browserify Usage部分。