使用Browserify-shim需要jquery插件,具体取决于window.jQuery

时间:2015-07-23 17:46:18

标签: jquery gulp browserify browserify-shim

我很难绕着Browserify-shim来实现我想要的目标。该文档似乎很简单,但我必须遗漏一些东西。

我正在尝试将jquery与var $ = require('jquery')一起使用(它本身可以正常工作),但也能够使用引用全局window.$或{{的随机插件1}}变量。

这是例如我正在尝试使用的插件: https://github.com/jackmoore/zoom

它使用其他方法扩展window.jQuery对象,并包含在IIFE中,注入window.jQuery,如下所示:

$

我正在使用gulp以简单的方式捆绑我的脚本,使用npm的(function($) { // stuff }(window.jQuery)); (不是已弃用的browserify):

gulp-browserify

这是我gulp.task('scripts', function(){ return browserify('src/scripts/app.js') .bundle() .pipe(source('app.js')) .pipe(gulp.dest('dist/scripts')); }); 文件的浏览器部分:

package.json

我在.js文件中要求"browserify": { "transform": [ "browserify-shim" ] }, "browserify-shim": { "jquery": "$", "jquery-zoom": { "depends": ["jquery:jQuery"] } } jquery

jquery-zoom

浏览器垫片诊断工具输出对我来说非常好:

var $ = require('jquery');
var zoom = require('jquery-zoom');

但是当我的脚本在浏览器中被激活时,window.jQuery仍然是明确未定义的。 知道什么是错的吗?

我制作了一个快速,简单的存储库,重现了我的问题: https://github.com/clementoriol/browserify-shim-test

谢谢!

0 个答案:

没有答案