如果我有一个从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' ]
似乎完全忽略它并且不起作用。
答案 0 :(得分:27)
使用browserify-shim,您可以在package.json文件中添加:
"browserify": {
"transform": [
"browserify-shim"
]
},
"browserify-shim": {
"jquery": "global:$"
}
然后jquery将通过require('jquery')
答案 1 :(得分:0)
如果您在页面上的Browserify包之前加载jQuery,$
将作为全局提供。