我已在我的html文件中添加了jQuery作为脚本标记,并已将其添加到package.json
以便使用browserify-shim
,如下所示:
"browserify": {
"transform": [
"browserify-shim"
]
},
"browserify-shim": {
"jquery": "global:jQuery"
},
我可以通过简单的require('jquery')
调用在我的主脚本文件中公开它。
问题在于我使用了一些内部执行require('jquery')
的jQuery插件,并且由于browserify转换不适用于依赖项的依赖性,因此导致浏览器投诉捆绑,因为它找不到jQuery
。
现在我知道我可以通过应用全局变换来解决它,因为我无法轻易找到方法。
Browserify文档说您无法在包文件中应用全局转换,因此以下内容无法正常工作(我认为会这样做):
"browserify": {
"global-transform": [
"browserify-shim"
]
},
"browserify": {
"transform": [
"browserify-shim"
],
"global": true
},
我还尝试将该选项添加到我的Gruntfile.js
,如下所示,但即使这样也无效:
browserify: {
options: {
global: true
},
dist: {
files: {
'js/bundle.js': 'js/script.js'
}
},
},
最后一个选项是为每个依赖关系browserify-shim
手动添加package.json
,但我不想这样做,因为这意味着每次我添加新的插件,我将不得不重复相同的过程。
有任何缓解上述问题的想法吗?
答案 0 :(得分:2)
您应该能够通过使用哈希选项提供转换来应用全局转换:
"browserify": {
"transform": [
["browserify-shim", {global: true}]
]
}