为什么光滑的轮播没有使用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')
调用)。
我更喜欢这个解决方案
- 添加jQuery作为NPM依赖:
npm install --save jquery
- 使其成为全局的,例如使用browserify-shim的export global或者:
window.$ = window.jQuery = require('jquery');
- 然后你可以安全地要求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')
这个对我有用。