Electron

解决Electron7.0.0的坑,cnpm install e

2019-10-26  本文已影响0人  coder老袁

一日心血来潮,屁颠屁颠的去研究electron。

打开百度,搜索 electron。

找到官网,按照官方文档一步一步构建项目

官方文档:打造你的第一个 Electron 应用

粗略扫一眼,简直不要太简单!

然!!!!

当到安装electron。

npm install --save-dev electron

可能是程序员自身光环吧,研究什么,什么报错!!!

npm安装执行 run "node install.js" 时候报错!

然后各种百度,解决方案,穷出不穷。

尝试yarn安装, 修改.npmrc 添加 ELECTRON_MIRROR(我的npm好像坏了一样,并不起作用),使用cnpm下载......

过程之艰辛,让人听者流泪,见者伤心!

可!!然并卵!

打扰了!我要学习《Electron 从入门到放弃》了!

可是转念一想,门都没摸进去,放个啥门子的弃哟!继续折腾吖!

自己动手,丰衣足食。网上没有解决办法,那就自己琢磨一下。

这厮既然报错操作不了下载的包,那在下姑且就先怀疑是下包地址有问题!(用cnpm是用国内镜像,下载不了,应该地址是有问题)!找到它的下载地址先!

进到项目目录 node_modules\electron\install.js 找到如下代码

// downloads if not cached
downloadArtifact({
  version,
  ...//省略,太多辣。
}).then((zipPath) => extractFile(zipPath)).catch((err) => onerror(err))

查看它的引用 (VSCode 按住CTRL)


可以看到 downloadArtifact 在 @electron/get/dist/cjs/index里

打开 @electron/get/dist/cjs/index.js,找到 function downloadArtifact(_artifactDetails){...}

将url输出出来,牛鬼神蛇,快快现身。

console.log(url)

终端定位到项目目录下的 node_modules\electron 里, 运行 node install.js

在输出里看包地址在哪!

PS H:\codes\testElectron\node_modules\electron> node install.js
https://github.com/electron/electron/releases/download/v7.0.0/electron-v7.0.0-win32-x64.zip

(有没有大神告诉我,这厮为什么不走国内镜像??)

emmm... github 继续修改镜像地址吧。

解决方案:

修改项目目录下的 node_modules\electron\install.js

downloadArtifact({
  version,
  artifactName: 'electron',
  force: process.env.force_no_cache === 'true',
  cacheRoot: process.env.electron_config_cache,
  platform: process.env.npm_config_platform || process.platform,
  arch: process.env.npm_config_arch || process.arch, //结尾别忘了加逗号!
  //添加如下代码,
  mirrorOptions:{
    mirror: 'https://npm.taobao.org/mirrors/electron/',
    customDir: version
  }
}).then((zipPath) => extractFile(zipPath)).catch((err) => onerror(err))

ps : customDir
downloadArtifact 拼接下载地址的时候,它会自动在版本号前加上字符 v
从而来下载github的镜像
github
https://github.com/electron/electron/releases/download/v7.0.0/electron-v7.0.0-win32-x64.zip
可这样,就会导致淘宝镜像下载出错!
淘宝的镜像中目录中版本目录,是不带v
https://npm.taobao.org/mirrors/electron/7.0.0/electron-v7.0.0-win32-x64.zip

再次用终端打开 项目目录下的 node_modules\electron 运行 node install.js

PS H:\codes\testElectron\node_modules\electron> node install.js
https://npm.taobao.org/mirrors/electron/7.0.0/electron-v7.0.0-win32-x64.zip
PS H:\codes\testElectron\node_modules\electron>

解决!!!

终端再次项目目录运行项目

PS H:\codes\testElectron> cnpm start
> testelectron@1.0.0 start H:\codes\testElectron
> electron .

希望能对你有点帮助!!!

上一篇 下一篇

猜你喜欢

热点阅读