2

我正在使用 Browserify 11.2 和 Browserify Shim 3.8,并尝试将 slick-carousel(通过 npm 包含)与从 CDN 加载的 jQuery 结合使用。我意识到这需要使用 Browserify 垫片,但我无法让它工作。

这是我package.json文件的相关部分。

  "devDependencies": {
      ...
      "browserify": "^11.2.0",
      "browserify-shim": "^3.8.10",
      ...
      "slick-carousel": "^1.5.8",
      ...
    },
    "browserify": {
      "transform": [
        "browserify-shim"
      ]
    },
    "browser": {
    },
    "browserify-shim": {
      "jquery": "global:jQuery",
      "slick-carousel": {
      }
    },
    "dependencies": {
    }

尝试要求 slick-carousel 时,出现错误:

Cannot find module 'jquery' from 'path_to_node_modules/node_modules/slick-carousel/slick'

但是,如果我将 require('jquery') 输出到常量(例如)

const jq = require('jquery'), jquery 就如我所料。

现在我的脚本只包含以下测试:

require('jquery');
require('slick-carousel');

我一直很难把我的头包裹在 Browserify Shim 上——任何关于我做错了什么的指导都值得赞赏。

4

1 回答 1

1

您需要在以下内容中指定 slick-carousel 依赖于 jQuery package.json

"browserify": {
  "transform": [
    "browserify-shim"
  ]
},
"browserify-shim": {
  "jquery": "global:jQuery",
  "slick-carousel": {
    "depends": [
      "jquery: jQuery"
    ]
  }
},
于 2016-01-08T22:05:18.860 回答