2

我在我的 html 文件中添加了 jQuery 作为脚本标记,并将其添加到package.json如下browserify-shim所示:

  "browserify": {
    "transform": [
      "browserify-shim"
    ]
  },
  "browserify-shim": {
    "jquery": "global:jQuery"
  },

我可以通过一个简单的require('jquery')调用在我的主脚本文件中公开它。

问题是我正在使用一些内部执行 a 的 jQuery 插件,require('jquery')并且由于 browserify 转换不适用于依赖项的依赖,因此导致 browserify 抱怨捆绑,因为它找不到jQuery.

现在我知道我可以通过应用全局变换来解决它,但我找不到一种容易做到的方法。

Browserify 文档说您不能在包文件中应用全局转换,因此以下内容不起作用,(我认为会这样):

  "browserify": {
    "global-transform": [
      "browserify-shim"
    ]
  },

  "browserify": {
    "transform": [
      "browserify-shim"
    ],
    "global": true
  },

我也尝试将选项添加到我Gruntfile.js的如下,但即使这样也不起作用:

browserify: {
        options: {
            global: true
        },
        dist: {
            files: {
                'js/bundle.js': 'js/script.js'
            }
        },
    },

最后一个选项是手动将 a 添加browserify-shim到每个依赖项package.json,但我不想这样做,因为这意味着每次添加新插件时,我都必须重复相同的过程。

有什么想法可以缓解上述问题吗?

4

1 回答 1

2

您应该能够通过提供带有哈希选项的变换来应用全局变换:

 "browserify": {
   "transform": [
     ["browserify-shim", {global: true}]
   ]
 }
于 2016-12-07T12:46:50.297 回答