1.创建一个test1模块,对该模块npm install cheerio,在index.js引入该模块
2.创建一个nodejs8的test1函数,引入test1模块
- 发布:2024-10-17 22:37
- 更新:2024-10-18 16:55
- 阅读:358
产品分类: uniCloud/App
操作步骤:
预期结果:
本地和云端正常运行,无报错
本地和云端正常运行,无报错
实际结果:
本地正常运行,云端报错:
/tmp/function/@common_modules/test2/node_modules/cheerio/dist/commonjs/api/attributes.js:300
catch {
^
SyntaxError: Unexpected token {
at createScript (vm.js:80:10)
at Object.runInThisContext (vm.js:139:10)
at Module._compile (module.js:617:28)
at Object.Module._extensions..js (module.js:664:10)
at Module.load (module.js:566:32)
at tryModuleLoad (module.js:506:12)
at Function.Module._load (module.js:498:3)
at Module.require (module.js:597:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/tmp/function/@common_modules/test2/node_modules/cheerio/dist/commonjs/cheerio.js:27:33)
本地正常运行,云端报错:
/tmp/function/@common_modules/test2/node_modules/cheerio/dist/commonjs/api/attributes.js:300
catch {
^
SyntaxError: Unexpected token {
at createScript (vm.js:80:10)
at Object.runInThisContext (vm.js:139:10)
at Module._compile (module.js:617:28)
at Object.Module._extensions..js (module.js:664:10)
at Module.load (module.js:566:32)
at tryModuleLoad (module.js:506:12)
at Function.Module._load (module.js:498:3)
at Module.require (module.js:597:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/tmp/function/@common_modules/test2/node_modules/cheerio/dist/commonjs/cheerio.js:27:33)
bug描述:
我在公共模块npm的是cheerio@1.0.0-rc.10版本,实际云端线上是cheerio@1.0.0
发现原因:由于该版本已不支持nodejs8,因为该包代码中出现try{}catch{}导致引入错误,我查阅资料后使用了cheerio@1.0.0-rc.10版本,但是在报错描述中发现该包代码并未改变。尝试了rc.5到rc-12的版本,所以得出引入的是cheerio@1.0.0版本均无法使用,然而我只能尝试更低的8年前的0.22.0版本,这时候云端版本才会同步。并且我尝试使用nodejs12的情况下会出现:ReferenceError: ReadableStream is not defined,即在这种情况下也无法使用cheerio@1.0.0版本。
希望官方能修复云端包版本和本地包版本一致性的问题。
1 个回复
DCloud_uniCloud_CRL
你在package.json文件中指定依赖版本就可以了。