【问题标题】:getting browserify-shim to work as expected让 browserify-shim 按预期工作
【发布时间】:2014-05-03 22:25:39
【问题描述】:

我正在尝试让 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>

browserified 文件包含在内,但是当我转到 chrome 开发工具控制台并键入“horses”时,我得到一个未定义的错误。关于我可能做错了什么的任何想法?谢谢

【问题讨论】:

    标签: node.js gulp browserify


    【解决方案1】:

    我认为您想通过 exports 访问 jquery,并且您还假设 global 允许您获取全局 a 模块创建并为其创建别名,但我认为它不会那样做。如果 jquery 确实创建了一个名为 horses 的全局变量,则上述方法可能会起作用,但如果您只是任意组成该名称,则不会。我认为您正在尝试做更多类似的事情:

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

    【讨论】:

    • 谢谢彼得。您的评论和多次阅读文档帮助我找到了适合我的设置。对于未来的线程访问者,这是 browserify-shim 文档的相关部分:github.com/thlorenz/…
    猜你喜欢
    • 2014-05-25
    • 1970-01-01
    • 2011-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-10
    • 2014-09-10
    相关资源
    最近更新 更多