导入socket.io后脚本编译失败

自带的有用过,不过看socket.io服务端集成的比较好,所以想尝试一下

应该不关事, 我的cc3.8.6, 用 socket.io 2.4.0 版本一切正常

噢噢,那我用的socket.io4.8.1的,前一个项目用的2.x的可以,我只是想更新版本试试看

好像是cc 对 那些支持cjs与esm的node库都有问题, 很多时候要不是纯cjs, 要不就是纯esm

这个是不是没办法解决,我查资料说只要在package.json中加什么babel参数就好了,但是加了也没用

试了一下, socket.io 3.x没问题, package exports 只配了cjs的输出
説白了是cc 的编译对node_modules处理不友好

噢噢,那只有4.x的不能用了,感谢支持

4.x 也有方法可以正常运作, 把node_modules库里socket.io-client/package.json中把

 "import": {
   "types": "./build/esm/index.d.ts",
   "default": "./build/esm/index.js"
 },

改成

"import": {
"types": "./build/cjs/index.d.ts",
 "default": "./build/cjs/index.js"
},

再一步证明cc 对esm支持有问题

666,果然社区大神多。社区是我家,天天爱上它 :rofl:

改完之后好用吗?改了之后编译是通过了,但是运行报错了:
f86f4cd7-8c22-410f-a26c-4334e7655627

你爱得太早了 :smiling_imp:,砸还有fs这种模块 , fs是本地nodejs的

不清楚啊 :joy:崩溃了,还是不能私自乱改,水平有限

你还是用3吧,这个处理支持有问题,按了葫芦又起瓢

行吧,只能这样了。封装的模块确实不能轻易改的

做了一下实验, cc3.8 前的版本是可以用的, 3.8后应该加了一些强验证处理, 我试了部分支持esm与cjs的库, 如果你esm的库引用的index副档名不是mjs, 就跑不了。 试了几个有些可行, 有些不行, socket.io 我改了副档名, 改了路径依旧不行, 所以不知道开发组加了甚麽谜之操作

那只能请开发组的同学帮忙看看了

为什么我试了2.x的3.x的还是不行呢?连接没有任何反应,是不是服务端的版本号也要一致才行?

好像是 2.x 要与 2.x, 大版号要一致, 小号不影响

搞了好久,我用curl命令能建立连接,但是cocos打开之后连接报跨域问题,尝试了很多网上的办法都没用

跨域是你服务器没有配置允许跨域, curl 不跟浏览器安全协议