Reputation: 7283
I'm trying to use slick carousel (http://kenwheeler.github.io/slick/) and installed via npm.
Including it via browserify like this:
slick = require('slick-carousel')
trying to run like this:
$('.gallery__carousel').slick();
No console errors, carousel not initialising. What's going on?
Upvotes: 6
Views: 5845
Reputation: 2195
"browserify-shim": {
"jquery": "global:jQuery",
"slick-carousel": {
"depends": [
"jquery: jQuery"
],
"exports": "$.fn.slick"
}
},
"browserify": {
"transform": [
"browserify-shim"
]
}
Upvotes: 0
Reputation: 2905
NOTE: It's not recommended to edit library. If still in case you want a workaround then you can follow like below.
I also had the same problem with using slick with browserify but none of solutions worked for me. Then i take a took into slick.js and changed -
Find:
(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($) {
Replace:
;(function ( $, window, document, undefined ) {
add the last line -
Find:
}));
Replace:
})( jQuery, window, document );
Hope it helps to understand the problem.
Upvotes: 4
Reputation: 61
I've solved this problem another way. There is npm package slick-carousel-browserify
.
So:
npm install slick-carousel-browserify --save-dev
And:
$ = require ('./../../bower_components/jquery/dist/jquery.js');
slick = require('slick-carousel-browserify');
slick($('.selector'));
Upvotes: 1
Reputation: 1850
The problem occurs thanks to this code of 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);
}
}
Author assumes, that if you use CommonJS module loader (like Browserify), you should have had jQuery in you dependencies (it's called directly with require('jquery')
).
I prefer this solution:
npm install --save jquery
window.$ = window.jQuery = require('jquery');
require('slick-carousel');
Upvotes: 1
Reputation: 1
try to add
$ = require('jquery')
before
slick = require('slick-carousel')
it works for me.
Upvotes: 0