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

如果我有一个从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' } } 

这里是shim文件client/shims/jquery.js ,我将其别名为jquery所以我可以使用require('jquery')而不是完整path。

 module.exports = $; 

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

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

通过browserify-shim,你可以在你的package.json文件中添加这个:

  "browserify": { "transform": [ "browserify-shim" ] }, "browserify-shim": { "jquery": "global:$" } 

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

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