最近在研究 ProcessMaker 工作流引擎,安装过程中在执行npm install
命令时遇到如下报错:
npm ERR! code 1
npm ERR! path /www/wwwroot/www.02405.com/node_modules/cypress
npm ERR! command failed
npm ERR! command sh -c -- node index.js --exec install
npm ERR! Cypress cannot write to the cache directory due to file permissions
npm ERR!
npm ERR! See discussion and possible solutions at
npm ERR! https://github.com/cypress-io/cypress/issues/1281
npm ERR!
npm ERR! ----------
npm ERR!
npm ERR! Failed to access /root/.cache/Cypress:
npm ERR!
npm ERR! EACCES: permission denied, mkdir '/root/.cache/Cypress'
npm ERR!
npm ERR! ----------
npm ERR!
npm ERR! Platform: linux-x64 (CentOS - 7.6.1810)
npm ERR! Cypress Version: 9.7.0
npm ERR! A complete log of this run can be found in:
npm ERR! /www/server/nodejs/v16.18.0/cache/_logs/2023-06-30T05_47_35_181Z-debug-0.log
错误原因里面有个解决方案的 github 地址:https://github.com/cypress-io/cypress/issues/1281,但是打开看了下,是以前版本存在的问题,建议修复,并且官方在新版本中优化了这个问题。按理来说我的版本是9.7.0,不应该再出这个问题了。
里面说到的解决方案有以下几种:
- 通过
sudo npm install
命令重新尝试安装。 - 通过
npm install --save-dev cypress
命令重新尝试安装。 - 通过
npm install --unsafe-perm=true --allow-root
命令重新尝试安装。
我全试了一遍,都没有解决问题。后来看 CyPress 官方文档发现可以通过CYPRESS_CACHE_FOLDER
参数自定义缓存目录,终于解决了问题,安装代码如下:
CYPRESS_CACHE_FOLDER=/www/wwwroot/www.02405.com/.cache npm install
需要注意的是其中的自定义缓存目录(红色部分)必须是当前执行命令的目录,我之前随便定义了个 /www/wwwroot/cypress
路径,仍然报错,必须是执行 npm 命令的路径才可以。