electron-vue+electron-updater后npm run build 报错ERROR in unknown: Unexpected token (1979:65)问题解决思路
electron-vue报错ERROR in unknown: Unexpected token 问题解决思路前言报错内容解决思路解决方案后记前言最近过年没事在家里完善我自己的开发者助手,是使用electron-vue写的,由于我构想需要软件能自动软升级,所以这几天在家里折腾electron-updater这个插件,最开始我是使用的electron-packager打包方法,所以一直无法使用,最后
前言
最近过年没事在家里完善我自己的开发者助手,是使用electron-vue写的,由于我构想需要软件能自动软升级,所以这几天在家里折腾electron-updater这个插件,最开始我是使用的electron-packager打包方法,所以一直无法使用,最后查阅各种资料根据很多人描述的内容分析软更新应该是需要electron-builder打包方式才能实现。各种折腾各种更换外部组件后开发环境能正常跑起来了,但是打包的时候却踩了一个莫名其妙的问题,那就是ERROR in unknown: Unexpected token (1979:65),是的你没有看错他并没有报出实际的错误位置和细节,这让我很是蛋疼,从昨天中午一直折腾到凌晨两点多都没有得到很好的解决。最后无奈使用网上原有的能打包的demo一个文件一个文件和我本地对比才发现原来问题就出在这个electron-updater插件上。
报错内容
- building main process
- building renderer process
ERROR failed to build main process
Hash: c6e912ee62b75ed1f1c3
Version: webpack 4.46.0
Time: 9066ms
Built at: 2021/02/17 上午11:29:52
Asset Size Chunks Chunk Names
main.js 357 KiB 0 main
Entrypoint main = main.js
[0] external "electron" 42 bytes {0} [built]
[1] external "path" 42 bytes {0} [built]
[2] ./node_modules/electron-updater/node_modules/builder-util-runtime/out/index.js 4.46 KiB {0} [built]
[4] ./node_modules/electron-updater/out/main.js 4.87 KiB {0} [built]
[11] external "fs" 42 bytes {0} [built]
[12] ./node_modules/electron-updater/out/providers/Provider.js 4.82 KiB {0} [built]
[13] external "url" 42 bytes {0} [built]
[14] ./node_modules/electron-updater/node_modules/fs-extra/lib/index.js 719 bytes {0} [built]
[23] external "crypto" 42 bytes {0} [built]
[34] ./node_modules/electron-updater/out/AppUpdater.js 23 KiB {0} [built]
[67] ./node_modules/electron-updater/out/AppImageUpdater.js 5.55 KiB {0} [built]
[73] ./node_modules/electron-updater/out/MacUpdater.js 5.35 KiB {0} [built]
[74] ./node_modules/electron-updater/out/NsisUpdater.js 10.7 KiB {0} [built]
[75] external "nedb" 42 bytes {0} [built]
[176] ./src/main/index.js + 1 modules 8.88 KiB {0} [built]
| ./src/main/index.js 6.94 KiB [built]
| ./src/main/Update.js 1.92 KiB [built]
+ 162 hidden modules
ERROR in unknown: Unexpected token (1979:65)
error Command failed with exit code 1.
解决思路
通过我的各种测试各种分析发现其实报错ERROR in unknown: Unexpected token 的上一句代码嫌疑很大 162 hidden modules 这不是说我引入的模块被隐藏了嘛?这是为毛??试了各种方法,也查阅了网上的资料都说去掉 ·–hide-modules· 参数但是我的项目中并没有这个参数。也有人说命令参数加入 --color --display --display-modules 例如 webpack --color --display --display-modules 实测也无效。最后想了很久也检查了很久代码被我看出了破绽。
解决方案
想了很久最后查看package.json文件发现我安装electron-updater模块的时候是安装到了devDependencies中,emm打包的时候应该是使用的生产环境也就是dependencies中的包也就是build的时候可能找不到electron-updater模块,提示 hidden modules也就不是很奇怪的问题了(个人感觉这里应该直接给个异常或者警告比较好),那是不是我应该将electron-updater模块安装到dependencies就可以了呢?光有想法是不能解决问题的,说干就干最后发现还真是这个问题导致的。
//在package.json的dependencies中添加electron-updater模块,并且删除devDependencies的electron-updater模块
"electron-updater": "^4.3.5"
//然后再npm install后执行 npm run build 看看问题是否得到解决
后记
以上解决方案只针对我个人的项目有用,如果你也遇到同样问题并且对你有帮助的话可以给我点个小小的赞,谢谢哈。
更多推荐
所有评论(0)