我已将 jQuery 作为脚本标记添加到我的 html 文件中,并将其添加到 package.json
以便与 browserify-shim
一起使用,如下所示:
"browserify": {
"transform": [
"browserify-shim"
]
},
"browserify-shim": {
"jquery": "global:jQuery"
},
我可以通过简单的 require('jquery')
调用在我的主脚本文件中公开它。
问题是我正在使用一些 jQuery 插件,它们在内部执行 require('jquery')
并且由于 browserify 转换不适用于依赖项的依赖性,这导致 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
,但我不想这样做,因为这意味着每次我添加了一个新插件,我将不得不重复相同的过程。
有什么办法可以缓解上述问题吗?
最佳答案
您应该能够通过提供带有散列选项的转换来应用全局转换:
"browserify": {
"transform": [
["browserify-shim", {global: true}]
]
}
关于javascript - 允许使用 grunt browserify 进行全局转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35228943/