Jquery 为什么slick carousel不能与browserify一起工作?

Jquery 为什么slick carousel不能与browserify一起工作?,jquery,browserify,slick.js,Jquery,Browserify,Slick.js,我正在尝试使用slick carousel()并通过npm安装 通过browserify将其包括在内,如下所示: slick = require('slick-carousel') $('.gallery__carousel').slick(); 尝试这样运行: slick = require('slick-carousel') $('.gallery__carousel').slick(); 无控制台错误,转盘未初始化。发生了什么事?尝试添加 $=require('jquery') 在

我正在尝试使用slick carousel()并通过npm安装

通过browserify将其包括在内,如下所示:

slick = require('slick-carousel')
$('.gallery__carousel').slick();
尝试这样运行:

slick = require('slick-carousel')
$('.gallery__carousel').slick();
无控制台错误,转盘未初始化。发生了什么事?

尝试添加
$=require('jquery')


slick=require('slick-carousel')

它对我有用

注意:不建议编辑库。如果你还想的话 一个解决办法,然后你可以按照如下所示

我在使用slick和browserify时也遇到了同样的问题,但没有一个解决方案适合我。然后我把一张照片带到slick.js中,并改变了-

查找:

(function(factory) {
    'use strict';
    if (typeof define === 'function' && define.amd) {
        define(['jquery'], factory);
    } else if (typeof exports !== 'undefined') {
        module.exports = factory(require('jquery'));
    } else {
        factory(jQuery);
    }

}(function($) {
替换:

;(function ( $, window, document, undefined ) {
})( jQuery, window, document );
添加最后一行-

查找:

替换:

;(function ( $, window, document, undefined ) {
})( jQuery, window, document );

希望这有助于理解问题。

问题的出现得益于Slick v1.5.x的以下代码:

作者假设,如果您使用CommonJS模块加载器(如Browserify),您的依赖项中应该有jQuery(它是通过
require('jQuery')
直接调用的)

我更喜欢这个解决方案:

  • 将jQuery添加为NPM依赖项:
    NPM安装--保存jQuery
  • 使其全球化,例如通过 或者使用:
    window.$=window.jQuery=require('jQuery')
  • 然后,您可以使用
    require('Slick-carousel')安全地请求Slick

  • 我用另一种方法解决了这个问题。有一个npm包
    光滑的旋转木马browserify
    。 因此:

    以及:


    请检查package.json文件。滑溜转盘是否已安装?似乎未安装,但为什么?它似乎将一些类应用于我的dom元素……首先安装,然后使用“滑动转盘”功能。您正在重新查询文件,但没有安装“slick carousel”,然后您可以如何访问这些功能。我确实运行了“npm install slick carousel”,它说:“slick-carousel@1.5.5node_modules/slick carousel'那么为什么不安装它呢?检查你的node_module文件夹,slick carousel文件夹是否存在?请给出您的答案并解释为什么这会有帮助。您是否可以重写它,它太令人困惑了,请用什么替换什么。@nofel尝试拉取最新的slick carousel,作者可能会修复此问题。如果仍然没有修复,那么打开slick carousel,按照我提到的找到代码块并删除它,然后像上面那样粘贴相应的代码。你能过滤你的代码吗。真的很难理解我是否应该找到所有的chuck of code并用少量代码替换它,或者如何替换?然后使用“slick-carousel”中的导入slick,您应该添加一个解释,解释为什么这是答案。
    "browserify-shim": {
    "jquery": "global:jQuery",
         "slick-carousel": {
          "depends": [
            "jquery: jQuery"
          ],
          "exports": "$.fn.slick"
        }
      },
      "browserify": {
        "transform": [
         "browserify-shim"
        ]
      }