想用 Electron 写个 Hello World,先用 npm 安装

npm install -g electron

提示权限错误,常常忘记 sudo

sudo npm install -g electron

还是出错,错误信息:Error: EACCESS: permission denied, mkdir '/usr/local/lib/node_modules/electron/.electron'

查了一下,2017 年就出现这个问题,macOS 和 Linux 平台都有,解决方法可参考 Electron 安装文档 Troubleshooting 部分

  1. 有些安装错误是网络问题,别用 npm 用安装包吧
  2. EACCESS 错误,你可能需要修复 npm 权限
  3. 如果仍然出错,安装时设置 unsafe-perm 选项

node version manager

用安装包安装这种事对于我这种已经升华到命令行的人来说 …… 我当然是选择修复 npm 权限啊。

修复 npm 权限的方法有两种:

  1. 用 node version manager 重新安装 npm(推荐)
  2. 手动更改 npm 默认目录

我当然是根据推荐选一,然后各个平台都有两个选项,macOS 平台上有:

  1. nvm
  2. n

我还是选一。其实 n 看着更简洁明了,但是比较的时候读文档读到一句

After switching Node.js versions using n, npm may not work properly. This should fix it ……

我心里有点慌,每次切换 node.js 版本千万得记得来 fix 一下,否则因为一些奇奇怪怪的问题搞半天结果都没地方诉苦去,不用户友好。

刚刚和 npm 有点熟络,现在又出来一个 nvm,然后还有一个叫做 nvm 的 nvm。其实切换 Node.js 版本对我来说是伪需求,但这不是为了解决 Electron 安装问题么,正所谓人间正道是沧桑。

装好 nvm,安装 Electron,还是出错。

🤦🏻‍♂️ 沧桑,我再接着学习一下怎样卸载 nvm

unsafe-perm 选项安装

与开源的开发工具相伴的常常是命令行和配置文件,对比 Windows 平台上的安装包和图形界面,很容易营造出掌控感乃至于优越感。然而这次的现实是我在工具上花费了充实的半个小时,还没有写下 Hello World 的第一行代码。然后我又给了我理由再花费个把小时写下本文,记录其间的心路历程,就是为了告诉大家,最后我是这样安装成功的。

sudo npm install -g electron --unsafe-perm=true

按理说 Electron 也是个成熟的框架了,但是初次安装就有一定概率你需要参考安装文档的 Troubleshooting 部分,启用一个 unsafe 的选项,这实在不是很好的第一印象。