我很难绕着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
谢谢!