需求:使用electron开发一个应用,在主进程中fork一个子进程
遇到的问题:
在本地跑的时候直接用的相对路径,详细如下:
```
child = fork(`${__dirname}/jspath/jsname.js`)
```
这样运行的很好,后面(https://www.electron.build/)打包的时候,发现了fork后,很快就exit 1,catch不住任何错误
定位问题的步骤:
1.通过打印__dirname 和electron-builder 文档,发现我们的业务的代码实际上是在***/your-app.app/Contents/Resources/app.asar这个文件中,该文件不能直接访问,需要用asar这个工具解压https://www.cnblogs.com/xuhai/p/9955310.html 发现在jsname.js文件并没有在该文件目录下,好的那就查看如何包含这些文件进去,查询了资料后在packge.json里面的build选项
```
"build": {
"files": [
"dist/electron/**/*",
"src/main/**/*"
],
}
```
重新打包发现代码已经包含进来了,但是继续调fork的时候 发现子进程还是退出,exit 1 并没有catch住错误,后面发现有模块没有包含进来,不知道为什么dev下面不需要显示加载,但是在构建的时候需要显示加载,在dependencies加入依赖以后 重新打包,问题解决