DataEase 2.10.x 编译打包都遇到的Error: Missing "./bin/jsencrypt.min" specifier in "jsencrypt" package解决方式
背景
有网友需要定制dataease ,修改后编译,都遇到:
Missing “./bin/jsencrypt.min” specifier in “jsencrypt” package
版本涉及:2.10.9-2.10.11
实属无奈,问我怎么解决
问题重现
我跟他说,我没遇到过,并信心满满说,我帮你编译吧
没想到,我打包到最后,也打脸了,也报相同错误。
咦,奇怪了,原来不是好好的。我左思右想,是不是jsencrypt包升级引起了的
解决办法
网上,AI各种搜,尝试过:
- 临时修改 jsencrypt 的 package.json
- 使用 patch-package 永久修复
- 在 vite.config.ts 中强制重写
- 使用别名精确匹配
- 在 optimizeDeps 中排除 jsencrypt
均以失败告终。
后来,进入core-frontend,执行npm run build:base
依然报:Error: Missing “./bin/jsencrypt.min” specifier in “jsencrypt” package
然后在搜。建议修改如下:
原来写法:
import JSEncrypt from ‘jsencrypt/bin/jsencrypt.min’; // 或类似路径
改成:
import JSEncrypt from ‘jsencrypt’;
然后,一搜JSEncrypt在哪个引用,结果搜到
在encryption.ts使用,把原来的 import JSEncrypt from ‘jsencrypt/bin/jsencrypt.min’ 注释掉
增加import JSEncrypt from ‘jsencrypt’ 即可
花了两天,才搞定这个错,呵呵
如需沟通:lita2lz