包括全局jQuery使用Browserify / Browserify Shim的slick-carousel在内的麻烦 [英] Trouble including slick-carousel with global jQuery using Browserify / Browserify Shim
问题描述
我使用的是Browserify 11.2和Browserify Shim 3.8,并试图使用从CDN加载的jQuery来使用slick-carousel(通过npm包含)。我意识到这需要使用Browserify填充,但我无法使它工作。
这是我的包的相关部分.json
文件。
devDependencies:{
...
browserify:^ 11.2.0 ,
browserify-shim:^ 3.8.10,
...
slick-carousel:^ 1.5.8,
...
},
browserify:{
transform:[
browserify-shim
]
},
浏览器 :{
},
browserify-shim:{
jquery:global:jQuery,
slick-carousel:{
}
},
依赖关系:{
}
尝试时要求slick-carousel,我得到错误:
$ b $ p
无法从'path_to_node_modules / node_modules / slick-carousel / slick'找到模块'jquery'
然而,如果我输出require('jquery')到一个常量(例如)
const jq = require('jquery')
,jquery就像我期望的那样。
现在我的脚本只包含以下内容以供测试:
要求( '的jquery');
require('slick-carousel');
我一直在绕过Browserify Shim,米做错了表示赞赏。
您需要指定slick-carousel依赖于 package.json中的jQuery $
browserify:{
transform:[
browserify- shim
},
browserify-shim:{
jquery:global:jQuery,
slick-carousel:{
depends:[
jquery:jQuery
}
},
I'm using Browserify 11.2 and Browserify Shim 3.8 and am attempting to utilize slick-carousel (included via npm) with a jQuery loaded from a CDN. I realize that this requires the use of Browserify shim, but I am unable to get it to work.
Here is the relevant portion of my package.json
file.
"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": {
}
When attempting to require slick-carousel, I get the error:
Cannot find module 'jquery' from 'path_to_node_modules/node_modules/slick-carousel/slick'
However, if I output require('jquery') to a constant (e.g.)
const jq = require('jquery')
, jquery is there as I would expect.
Right now my script just contains the following for testing:
require('jquery');
require('slick-carousel');
I've always had a tough time wrapping my head around Browserify Shim - any guidance on what I'm doing wrong is appreciated.
You need to specify that slick-carousel depends on jQuery in your package.json
:
"browserify": {
"transform": [
"browserify-shim"
]
},
"browserify-shim": {
"jquery": "global:jQuery",
"slick-carousel": {
"depends": [
"jquery: jQuery"
]
}
},
这篇关于包括全局jQuery使用Browserify / Browserify Shim的slick-carousel在内的麻烦的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!