在browserify中需要cdn库而不将其捆绑在最终的js文件中

时间:2013-12-22 22:37:33

标签: node.js gruntjs browserify

如果我有一个从cdn下拉的库并且不希望它成为最终js文件的一部分但是能够使用browserify来要求它,我该如何解决它?

以下是我目前使用alias和填充文件解决问题的方法。

browserify: {
    options: {
        debug: true,
        transform: [ 'reactify' ],
        alias: [
            'client/shims/jquery.js:jquery'
        ]
    },
    app: {
        src:  'client/app.js',
        dest: 'public/app.js'
    }
}

这是我对client/shims/jquery.js所说的填充文件jquery,因此我可以使用require('jquery')代替完整路径。

module.exports = $;

grunt-browserify中是否有快捷方式支持此方案?我想知道是否可以在Gruntfile.js中定义它而不创建填充文件。

添加external: [ 'jquery' ]似乎完全忽略它并且不起作用。

2 个答案:

答案 0 :(得分:27)

使用browserify-shim,您可以在package.json文件中添加:

  "browserify": {
    "transform": [
      "browserify-shim"
    ]
  },

  "browserify-shim": {
    "jquery": "global:$"
  }

然后jquery将通过require('jquery')

在您的模块中提供

答案 1 :(得分:0)

如果您在页面上的Browserify包之前加载jQuery,$将作为全局提供。