跳转至内容
  • 社区首页
  • 版块
  • 最新
  • 标签
  • 热门
折叠

GitHub中文论坛

  1. 主页
  2. 版块
  3. 技术交流
  4. Electron 打包踩坑记录

Electron 打包踩坑记录

已定时 已固定 已锁定 已移动 技术交流
1 帖子 1 发布者 629 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • mangoM 离线
    mangoM 离线
    mango
    写于 最后由 mango 编辑
    #1

    最近学习 Electron 开发桌面程序,打包exe过程中遇到几个坑记录下

    1.第一个坑,报symlink错误

    An unhandled rejection has occurred inside Forge:
    Error: EPERM: operation not permitted, symlink XXX -> C:\Users\xxx\AppData\Local\Temp\electron-packager\win32-x64...
    

    这是由于权限不足导致,解决方法使用使用管理员权限运行命令

    2.第二个坑,cnpm引发的内存泄漏

    An unhandled error has occurred inside Forge:
    An error occured while making for target: squirrel
    Failed with exit code: 1
    Output:
    ���ڳ��Դӡ�my_electron_app.nuspec�����ɳ������
    ָ����·�����ļ���̫�����������߶�̫������ȫ�޶��ļ����������� 260 ���ַ�������Ŀ¼���������� 248 ���ַ���
    
        at ChildProcess.<anonymous> (D:\my-electron-app\node_modules\_electron-winstaller@5.0.0@electron-winstaller\lib\spawn-promise.js:49:24)
        at ChildProcess.emit (events.js:400:28)
        at ChildProcess.emit (domain.js:470:12)
        at maybeClose (internal/child_process.js:1055:16)
        at Process.ChildProcess._handle.onexit (internal/child_process.js:288:5)
    

    这个最坑,困扰了很久。看别人说是使用cnpm安装依赖导致的内存泄漏,于是把node_modules目录删了,重新用npm install 果然没问题了。

    npm与cnpm的区别

    说到npm与cnpm的区别,可能大家都知道,但大家容易忽视的一点,是cnpm装的各种node_module,这种方式下所有的包都是扁平化的安装。一下子node_modules展开后有非常多的文件。导致了在打包的过程中非常慢。但是如果改用npm来安装node_modules的话,所有包都是树状结构的,层级变深。
    由于这个不同,对一些项目比较大的应用,很容易出现打包过程慢且node内存溢出的问题(这 也是在解决electron打包过程中困扰我比较久的问题,最后想到了npm与cnpm的这点不>同,解决了node打包内存溢出的问题,从打包一次一小时优化到打包一次一分钟,极大的提高了效率)。
    所以建议大家在打包前,讲使用cnpm安装的依赖包删除,替换成npm安装的依赖包。

    1 条回复 最后回复
    0
    回复
    • 在新帖中回复
    登录后回复
    • 从旧到新
    • 从新到旧
    • 最多赞同


    • 登录

    • 第一个帖子
      最后一个帖子
    0
    • 社区首页
    • 版块
    • 最新
    • 标签
    • 热门