我正在尝试让browserify-shim工作,但我似乎无法创建我希望看到的全局变量。
(注意,我的最终目标是让它从gulp开始工作,但在遇到很多问题之后,我想我会消除一个变量,并尝试单独使用browserify工作)
在这种情况下,我希望将“horses”创建为指向jQuery库的全局变量。
// package.json
{
"version": "0.0.1",
"browser": {
"jquery": "./lib/js/vendor/jquery-2.0.2.js"
},
"browserify": {
"transform": [
"browserify-shim"
]
},
"browserify-shim": {
"jquery": "global:horses"
},
"devDependencies": {
// my dev dependencies
},
"dependencies": {
// my production dependencies
}
}
使用此配置,从命令行运行:
browserify common.js > mycoolfile.js
然后我将mycoolfile.js
包含到我的应用程序中并在浏览器中运行:
<script src="mycoolfile.js"></script>
浏览器化的文件很好,但是当我去chrome dev工具控制台并输入“horses”时,我得到一个未定义的错误。对我可能做错了什么的任何想法?谢谢
答案 0 :(得分:4)
我认为您希望通过exports
获取jquery,并且您还假设global
允许您创建一个全局模块并为其创建别名,但我不会这样做。我认为这样做。如果jquery确实有一个名为horses
的全局,它可能会起作用,但如果你只是任意编造这个名字,它就不会胜任。我想你正在尝试做更像这样的事情:
"browserify-shim": {
"jquery": {"exports": "jQuery"}
},