javascript - Cheerio 不是服务器上与本地具有相同 node.js 版本的功能
问题描述
我有一个使用 Cheerio 的刮刀。
var cheerio = require('cheerio');
$ = cheerio.load(s, { decodeEntities: true });
var sel = $('.text');
cheerio(sel).find(selector)
当我在本地调用它时,它工作正常。当我在具有 Cent OS 但具有相同节点版本(12.18.3)的服务器上调用它时,我在本地使用,我得到cheerio is not a function
错误。我清除了本地和远程的 node_modules 文件夹并进行了更改,npm install
但没有更改。还有什么可能导致这种奇怪的行为?
解决方案
我发现有时require('packageName').default
需要导出。所以我试了一下,可以在遥控器上修复它,但在本地require('cheerio').default
不起作用。现在它使用以下解决方案在本地和服务器上工作:
var cheerio = require('cheerio');
if (typeof (cheerio) != 'function') cheerio = require('cheerio').default;
我只是不知道为什么在具有相同 node.js 版本的两台机器上它会有所不同。
推荐阅读
- python-3.x - 获取二进制编码字符串而不是文件大小
- python - 将自定义 python 库路径添加到 Pyspark
- javascript - 新窗口中的就绪功能
- angularjs - asp.net mvc Angular js数据表不工作
- python - Numpy python R等效索引
- sql-server - SQL Server、ADO 锁记录
- python - 在 python 中的字符串格式化期间,不是所有的参数都被转换
- dataframe - if 语句:如果数据点的数量小于 x 则返回 NaN 否则计算数据帧的年化回报
- javascript - 流类型:可扩展的 React 组件道具类型
- python - 即使在从 python 脚本在 linux 中执行脚本之后也永久设置环境变量