为什么光滑的轮播没有使用browserify?

我正在尝试使用光滑的旋转木马( http://kenwheeler.github.io/slick/ )并通过npm安装。

通过browserify包含它,如下所示:

slick = require('slick-carousel') 

试图像这样运行:

 $('.gallery__carousel').slick(); 

没有控制台错误,轮播没有初始化。 这是怎么回事?

注意:不建议编辑库。 如果仍然需要解决方法,那么您可以按照以下方式进行操作。

使用浏览器浏览器时我也有同样的问题,但没有一个解决方案对我有用。 然后,我采取了进入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 ); 

希望有助于理解这个问题。

由于这个Slick v1.5.x代码,问题出现了:

 (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); } } 

作者假设,如果你使用CommonJS模块加载器(比如Browserify),你应该在你的依赖项中使用jQuery(它直接用require('jquery')调用)。

我更喜欢这个解决方案

  1. 添加jQuery作为NPM依赖: npm install --save jquery
  2. 使其成为全局的,例如使用browserify-shim的export global或者: window.$ = window.jQuery = require('jquery');
  3. 然后你可以安全地要求Slick with require('slick-carousel');

我用另一种方式解决了这个问题。 有npm包slick-carousel-browserify 。 所以:

 npm install slick-carousel-browserify --save-dev 

和:

 $ = require ('./../../bower_components/jquery/dist/jquery.js'); slick = require('slick-carousel-browserify'); slick($('.selector')); 

尝试添加
$ = require('jquery')
之前
slick = require('slick-carousel')

这个对我有用。

Interesting Posts