让browserify-shim按预期工作

时间:2014-05-03 22:25:39

标签: node.js gulp browserify

我正在尝试让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”时,我得到一个未定义的错误。对我可能做错了什么的任何想法?谢谢

1 个答案:

答案 0 :(得分:4)

我认为您希望通过exports获取jquery,并且您还假设global允许您创建一个全局模块并为其创建别名,但我不会这样做。我认为这样做。如果jquery确实有一个名为horses的全局,它可能会起作用,但如果你只是任意编造这个名字,它就不会胜任。我想你正在尝试做更像这样的事情:

"browserify-shim": {
  "jquery": {"exports": "jQuery"}
},