Browserify和全局jQuery

Browserify和全局jQuery,jquery,wordpress,browserify,Jquery,Wordpress,Browserify,我在WordPress主题中使用了browserify。我遇到的问题是,我希望将jQuery包含在“WordPress方式”(即wp\u enqueue\u脚本(“jQuery”))中,以便所有依赖window.jQuery定义(并包含在中)的WordPress插件继续工作 我已经通过在我的Gulpfile.js中设置browserify(conf).ignore('jQuery')成功地使browserify ignore jQuery requires,但这会导致试图以“browserify

我在WordPress主题中使用了browserify。我遇到的问题是,我希望将jQuery包含在“WordPress方式”(即
wp\u enqueue\u脚本(“jQuery”)
)中,以便所有依赖
window.jQuery
定义(并包含在
中)的WordPress插件继续工作

我已经通过在我的Gulpfile.js中设置
browserify(conf).ignore('jQuery')
成功地使browserify ignore jQuery requires,但这会导致试图以“browserify方式”包含jQuery的脚本失败

我怎样才能拥有一个全局jQuery对象(包含在头部自己的
元素中),这样WP插件就可以工作,而仍然有
var$=require('jQuery')
工作的代码?可能吗

更新:我想我已经接近了。我现在将jQuery“正常”包含在
中。我在我的browserify调用中设置了
ignore('jquery')
,以避免它也出现在我的捆绑文件中,并且我正在使用browserify shim(我想这是我稍微丢失的地方)来(我想?)进行设置,以便在执行
require('jquery')
时,它使用全局
窗口。jquery
对象

这似乎在我自己的代码中起作用,如果我这样做:

var foo = require('jquery');

console.dir(foo);
我确实得到了一个jQuery对象,但我的绑定文件只有几kb,这表明jQuery没有绑定到其中。但是,当我
npm安装jquery cycle
并从脚本中要求它时,我从jquery cycle代码中得到一个JS错误,$未定义。奇怪的是,循环脚本与我所做的完全相同,即
var$=require('jquery')
,但在那里
$
根本不是jquery对象,而只是一个空对象。为什么会这样

更新2:由于某些原因,如果我将cycle插件的
require()
更改为需要它工作的确切JS文件。IE我已将
require('jquery-cycle')
(这引发了一个错误,基本上说
$未定义
)更改为
require('../node\u modules/jquery-cycle/index.js')

当然,我更愿意继续以“正常”的方式要求事情。你知道为什么这样不行吗

更新3:经过大量挖掘,我终于发现需要将
global:true
设置为
transform()
调用,以便依赖项也使用带垫片的jQuery。我终于在这里找到了这个解决方案:

我确实得到了一个jQuery对象,但我的绑定文件只有几kb,这表明jQuery没有绑定到其中。然而,当我npm安装jquery cycle并从脚本中要求它时,我从jquery cycle代码中得到一个JS错误,$未定义。奇怪的是,cycle脚本与我所做的完全相同,即var$=require('jquery'),但在这里,$根本不是jquery对象,而只是一个空对象。为什么会这样

如果页面上有多个jQuery,则必须添加全局变量:

var $ = jQuery;

你用Wordpress在同一台主机上编译gulp吗?如果你是这个意思的话,我在本地atm上做所有事情?你甚至可以使用本地不同的主机来运行gulp为Wordpress编译前端文件和http服务器。这里有一个很好的帖子:@Pete谢谢你。不过我还是设法解决了这个问题,只是忘了回答我自己的问题。我基本上做了他在你链接的文章中所做的事情。