在Termux中安装Express时遭遇EACCES权限错误求助
Termux中npm安装Express出现EACCES权限错误的解决办法
问题出在Termux的外部存储目录(/storage/emulated/0)默认不允许创建符号链接(symlink),而Express依赖的mime包需要在node_modules/.bin下创建软链,触发了权限限制——之前安装的mongoose、body-parser等包不需要创建这类软链,所以没出现问题。
以下是可行的解决方法:
将项目迁移到Termux内部存储
Termux的主目录(~)或~/storage目录支持symlink操作,执行以下命令迁移项目并重新安装:mv /storage/emulated/0/PROJECTS/express-blog ~/ cd ~/express-blog npm install express若需要访问外部存储文件,可通过Termux自带的
~/storage/shared软链直接访问,不影响项目运行。禁用npm的符号链接创建
无需移动项目,直接在原目录执行带参数的安装命令,让npm复制文件而非创建软链:npm install express --no-bin-links该方法能避开权限问题,且不影响Express的正常使用,仅需注意后续若有依赖需调用
node_modules/.bin下的命令时,可能需要手动处理路径。修改npm全局权限(不推荐)
不建议修改外部存储的系统权限,此方法风险较高,可能引发其他权限冲突,仅作为备选方案。
内容的提问来源于stack exchange,提问作者Saad Idris
相关产品推荐
相关产品推荐

