37

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

这是我目前使用aliasshim 文件解决它的方法。

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这是我使用别名的 shim 文件,jquery因此我可以使用它require('jquery')来代替完整路径。

module.exports = $;

grunt-browserify 中是否有快捷方式来支持这种情况?我想知道是否可以在不创建 shim 文件的情况下在 Gruntfile.js 中定义它。

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

4

2 回答 2

27

使用browserify-shim 你可以在你的 package.json 文件中添加这个:

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

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

然后 jquery 将在您的模块中通过require('jquery')

于 2014-02-15T16:20:09.703 回答
0

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

于 2015-08-30T05:35:28.887 回答