Browserify复制库代码

时间:2014-10-27 23:39:23

标签: browserify browserify-shim

我想将所有供应商库(如jQuery,moment.js,bootstrap.js等)代码放入 vendors.js 文件中,并从中导出jQuery以在其他模块中重用它。

因为bootstrap依赖于jQuery,所以我给两个模块打了电话并配置了依赖项:

的package.json

"browser": {
    "bootstrap": "./node_modules/bootstrap/dist/js/bootstrap.js",
    "jquery": "./node_modules/jquery/dist/jquery.js"
  },
  "browserify": {
    "transform": [
      "browserify-shim"
    ]
  },
  "browserify-shim": "gulp/utilities/shim-config.js"

垫片config.js

'use strict';

module.exports = {
  'jquery'    :  'jQuery',
  'bootstrap' :  { 'depends': { 'jquery': 'jQuery'} }
};

重新使用 jQuery 作为外部依赖项我在require方法调用中指定了它,当构建我的 vendors.js

build
 .require('jQuery')
 .bundle()
 .pipe(source('vendors.js'))
 .pipe(gulp.dest('build/public/js'))
 .pipe(plumber({
  errorHandler: helpers.logError
}));

在构建 vendors.js 之后,我发现, jQuery 代码被包含在 vendors.js 中两次:一次解决依赖关系,一次更多时间出口图书馆。考虑到 jQuery 的大小,这是一个重要问题。

任何人都可以帮我解决一下吗?

0 个答案:

没有答案