【Electron】打包失败。缺少第三方组件。

【错误出现的地点】

最近为财务的一个小伙伴做的对账需求软件。使用了Electron来做一个桌面应用。但是当我引入了node-xlsx这个模块之后,就无法打包出正确的应用。但是直接运行的话,却没有问题。这个问题困惑了我很久。

【排查问题的过程】

     首先一开始我打包成应用的时候,将源码打包成了asar包。这样的话无法看到打包后源代码的构成。于是我取消了这个选项。

      asar包相关链接

     接着我发现,在我打包生成的源代码文件夹中的node_modules文件夹,和node-xlsx相关的一些模块都变成了.symlink类型的文件。而这个文件我打开后发现是链接到我项目中node_modules的一些文件。而对于打包出的软件包,当运行的时候就没法找到这些文件。于是就报错,没有找到这些。

【问题产生的猜测】

      经过排查,发现打包出的软件包中的node_modules文件夹中变成.symlink类型的文件, 刚好和项目中node_modules的文件中文件夹显示为快捷方式文件夹相一致。而导致这些出现的原因很可能是CNPM使用的一项提升下载速度的技术,当你已经全局下载过这些包,在你项目使用会使用link的方式来复用。貌似你复制粘贴这些文件的时候都不会出现问题,而打包却会出现。

      当然这一切都只是我的猜测,具体产生的原因我还是不是很清楚,有了解相关方面的小伙伴,希望可以沟通一下。

【问题解决的办法】

      1、科学上网,后使用npm重新下载包。

      2、把显示为.symlink的文件复制出来后,源文件删除,再把这些文件复制出来。

// 问题有点久远,文章写了一半忘记写完了。之后写的后两项。所以可能有记忆不准确的地方,以及没有图片说明。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值