我正在使用Browserify 11.2和Browserify Shim 3.8,并尝试使用从CDN加载的jQuery的光滑轮播(通过npm包含)。我意识到这需要使用Browserify shim,但我无法让它工作。
以下是我的package.json
文件的相关部分。
"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": {
}
当试图要求光滑轮播时,我收到错误:
Cannot find module 'jquery' from 'path_to_node_modules/node_modules/slick-carousel/slick'
但是,如果我输出require(' jquery')为常量(例如)
const jq = require('jquery')
,jquery正如我所料。
现在我的脚本只包含以下内容进行测试:
require('jquery');
require('slick-carousel');
我总是很难在Browserify Shim周围徘徊 - 任何关于我做错事的指导都表示赞赏。
答案 0 :(得分:1)
您需要在package.json
中指定slick-carousel依赖于jQuery:
"browserify": {
"transform": [
"browserify-shim"
]
},
"browserify-shim": {
"jquery": "global:jQuery",
"slick-carousel": {
"depends": [
"jquery: jQuery"
]
}
},