簡體   English   中英

如何使用Browserify避免代碼重復

[英]How to avoid code duplication using Browserify

CommonJS noob在這里,我讀到了瀏覽器並認為它比我現有的RequireJS設置更簡單,所以我繼續改變它們。 我發現的是我將在每個包中進行代碼重復。 讓我解釋:

可以說,我有page1.jspage2.js使用jquery.jsjquery-ui.js

現在我必須創建bundle1.jsbundle2.js並且jquery.jsjquery-ui.js的內容在每個包中都是重復的。

我已經嘗試通過捆綁jquery.jsjquery-ui.js在瀏覽器中分離成不同的文件,例如:

<script src="lib_bundle.js">
<script src="page1.js">

問題是, requirepage1.js ,因為它不是一個CommonJS的捆綁將會失敗。

這種情況是外部要求的。 我不熟悉browserify的命令行,但在使用JavaScript API時,您可以執行以下操作。 這會將常見的依賴關系捆綁在一起。 然后,它們可以被其他捆綁引用為“外部”。

var browserify = require('browserify');

var externalDependencies = [
  'jquery',
  'jquery-ui'
];

// shared libraries bundle (i.e. jquery, jquery-ui)
var libsBundle = browserify({
  // your options
  // ...
  require: externalDependencies
});

// main bundle (i.e. page1, page2)
var mainBundle = browserify({
  // your options
  // ...
});
mainBundle.external(externalDependencies);

libsBundle.bundle();
mainBundle.bundle();

腳本標簽:

<script src="libsBundle.js">
<script src="mainBundle.js">

您還可以使用此命令行為jqueryjquery-ui創建單獨的包:

browserify -r jquery -r jquery-ui > modules.js

<script src="modules.js"></script>添加到html並將-x jquery -x jquery-ui到您的兩個包中。

browserify -x jquery -x jquery-ui page1.js > bundle1.js
browserify -x jquery -x jquery-ui page2.js > bundle2.js

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM