包括全局jQuery使用Browserify / Browserify Shim的slick-carousel在内的麻烦 [英] Trouble including slick-carousel with global jQuery using Browserify / Browserify Shim

查看:140
本文介绍了包括全局jQuery使用Browserify / Browserify Shim的slick-carousel在内的麻烦的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用的是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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆