一些简要的背景:我正在使用browserify和browserify-shim(以及gulp进行构建)创建网络应用程序。在遇到这个问题之前,我从npm中require
了jquery,所以没有任何问题。但是当我开始进行一些优化时,我意识到包含jQuery的捆绑文件有多么庞大。因此,现在我正在使用脚本标记从CDN获取jQuery,并将其放置在bundle.js文件之前。但我遇到了一个问题,无法正确地声明jQuery为全局变量并将我的jQuery插件shimming于browserify和browserify-shim中。每当我运行gulp进行构建时,我都会收到相同的错误:
[gulp] gulp-notify: [Compile Error] module "jquery" not found from "/Volumes/Chetan/Users/cshenoy/Projects/urbanstems-node/app/plugins/jquery.inview.js"
看起来browserify-shim没有发现jQuery是全局的。
供参考,我正在使用inview插件。
这是我的package.json文件及其中相关部分:
"browser": {
"inview": "./app/plugins/jquery.inview.js"
},
"browserify-shim": {
"jquery": "global:jQuery",
"inview": {
"depends": [
"jquery"
]
}
}
请告诉我还有什么其他信息可以帮助诊断错误。
require('jquery')
时,你是如何将它全局暴露以便插件仍然能够正常工作的? - Michael Martin-Smucker