pnpm 的安装源太多了,感觉系统变量都有引入顺序。

今天踩坑记录:
pnpm ,如果最初用npm 装的,可以用npm 升级;
如果最初用brew 装的,得用brew 升级;
如果最初是用corepack 装的得用corepack 升级;

由于项目需要,我今天直接:npm install -g pnpm@10.12.4

然后,就 Error: EACCES: permission denied, access ‘/usr/local/lib/node_modules’

在这里插入图片描述

npm install -g pnpm@10.12.4
npm error code EACCES
npm error syscall mkdir
npm error path /usr/local/lib/node_modules/lib/node_modules/pnpm
npm error errno -13
npm error Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/lib/node_modules/pnpm'
npm error     at async mkdir (node:internal/fs/promises:859:10)
npm error     at async /usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/reify.js:638:20
npm error     at async Promise.allSettled (index 0)
npm error     at async [reifyPackages] (/usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/reify.js:336:11)
npm error     at async Arborist.reify (/usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/reify.js:141:5)
npm error     at async Install.exec (/usr/local/lib/node_modules/npm/lib/commands/install.js:149:5)
npm error     at async Npm.exec (/usr/local/lib/node_modules/npm/lib/npm.js:208:9)
npm error     at async module.exports (/usr/local/lib/node_modules/npm/lib/cli/entry.js:67:5) {
npm error   errno: -13,
npm error   code: 'EACCES',
npm error   syscall: 'mkdir',
npm error   path: '/usr/local/lib/node_modules/lib/node_modules/pnpm'
npm error }
npm error
npm error The operation was rejected by your operating system.
npm error It is likely you do not have the permissions to access this file as the current user
npm error
npm error If you believe this might be a permissions issue, please double-check the
npm error permissions of the file and its containing directories, or try running
npm error the command again as root/Administrator.

改变文件的权限:

  1. First check who owns the directory
ls -la /usr/local/lib/node_modules

请添加图片描述

它拒绝访问,因为节点模块文件夹归root所有。
因此,需要将root更改为您的用户,但首先运行下面的命令来检查当前用户

在控制台输入:id -un OR whoami
然后去改变owner

sudo chown -R $USER /usr/local/lib/
sudo chown -R $USER /usr/local/bin/
sudo chown -R $USER /usr/local/share/

再检查文件所属权:
请添加图片描述

然后我再执行 sudo npm install -global pnpm

在这里插入图片描述
呃,这。
脑子里忽然闪过一丢灵光,感觉是系统变量引入顺序的问题。我看公司的这台电脑里是装了brewcorepack
我就试了试:brew 结果和 npm 升级 pnpm 一样。

最后我试了试corepack

corepack enable pnpm
corepack use pnpm@latest-10

然后就好了

pnpm -v
10.12.4

然后我开始装包:pnpm install
pnpm install gives no such file or directory, mkdir '/home/vsts error.

ENOENTENOENT: no such file or directory, mkdir '/home/vsts'pnpm: ENOENT: no such file or directory, mkdir '/home/vsts'at async Object.mkdir (node:internal/fs/promises:859:10)at async createNewStoreController (/Users/edy/.cache/node/corepack/v1/pnpm/10.12.4/dist/pnpm.cjs:101790:7)

通过搜索找到答案:手动设置路径:pnpm config set store-dir /path/to/pnpm/store/v3.
Make sure that the path actually exists.

参考资料:https://github.com/pnpm/pnpm/issues/4936

设置路径后,再次装包

pnpm no such file or directory, mkdir ‘/path’

ENOENTENOENT: no such file or directory, mkdir '/path'pnpm: ENOENT: no such file or directory, mkdir '/path'at async Object.mkdir (node:internal/fs/promises:859:10)at async createNewStoreController (/Users/edy/.cache/node/corepack/v1/pnpm/10.12.4/dist/pnpm.cjs:101790:7)at async installDeps (/Users/edy/.cache/node/corepack/v1/pnpm/10.12.4/dist/pnpm.cjs:159048:21)

找到答案:pnpm config set store-dir ~/pnpm

参考资料:https://blog.csdn.net/qq_37655530/article/details/129228561

哎,终于搞好了。

参考资料:
https://stackoverflow.com/questions/48910876/error-eacces-permission-denied-access-usr-local-lib-node-modules

https://github.com/pnpm/pnpm/issues/4936

https://blog.csdn.net/qq_37655530/article/details/129228561

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/87922.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/87922.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/87922.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[C#] WPF - 资源URI

一、组成 1、资源URI总共包括4个部分(当前程序集可以省略前3个): ①:pack://application:,,, ②:/[程序集名称] ③:;Component ④:/[资源路径] 二、举例 项目结构如下图所示: 1、MainWindow.xaml 文件…

【Mysql系列】Mysql 多级隔离级别揭秘

目录 一、什么是隔离级别 1.1、为什么复合操作需要事务? 1.2、事务的 ACID 特性如何保障操作可靠性? 1.3、隔离性通过隔离级别来控制 二、为什么用多级隔离级别 2.1、事务并发执行时可能引发以下问题 2.1.1、脏读(Dirty Read&#xff…

odoo17 警示: selection attribute will be ignored as the field is related

在 Odoo 17 中,当使用 related 字段时,直接在 fields.Selection 中指定选择列表会被忽略(因为选择项会从关联字段继承)。wtd_fuwlx fields.Selection(服务类型 , relatedwtd_id.fuwlx, storeTrue)遇到了一个警告,提示…

gemma-3n-E2B多模态模型使用案例:支持文本、图像、语音输入

参考: https://developers.googleblog.com/en/introducing-gemma-3n-developer-guide/下载: https://modelscope.cn/models/google/gemma-3n-E2B-it 模型下载 运行代码: https://github.com/huggingface/huggingface-gemma-recipes 微调&…

计算机网络实验——互联网安全实验

实验1. OSPF路由项欺骗攻击和防御实验一、实验目的验证路由器OSPF配置过程。验证OSPF建立动态路由项过程。验证OSPF路由项欺骗攻击过程。验证OSPF源端鉴别功能的配置过程。验证OSPF防路由项欺骗攻击功能的实现过程。二、实验任务使用自己的语言简述该实验原理。如图1所示的网络…

Pytorch中torch.where()函数详解和实战示例

torch.where() 是 PyTorch 中非常常用的一个函数,功能类似于 NumPy 的 where,用于条件筛选或三元选择操作。在深度学习训练、掩码操作、损失函数处理等场景中非常常见。一、基本语法 torch.where(condition, x, y)condition:一个布尔张量&…

基于Hadoop的公共自行车数据分布式存储和计算平台的设计与实现

文章目录 有需要本项目的代码或文档以及全部资源,或者部署调试可以私信博主项目介绍:基于Hadoop的公共自行车数据分布式存储与计算平台设计与实现数据介绍数据预处理 Hadoop 集群的几个主要节点介绍1. NameNode(主节点)2. DataNod…

Java项目:基于SSM框架实现的程序设计课程可视化教学系统【ssm+B/S架构+源码+数据库+毕业论文】

摘 要 使用旧方法对程序设计课程可视化教学信息进行系统化管理已经不再让人们信赖了,把现在的网络信息技术运用在程序设计课程可视化教学信息的管理上面可以解决许多信息管理上面的难题,比如处理数据时间很长,数据存在错误不能及时纠正等问题…

Unity 实现 NPC 随机漫游行为的完整指南

在游戏开发中,NPC(非玩家角色)的行为逻辑对于营造真实、沉浸式的游戏世界至关重要。一个常见但又极具表现力的需求是:让 NPC 在场景中自然地随机移动,仿佛它们有自己的意识和目的地。 本文将详细介绍如何使用 Unity 的…

重新学习Vue中的按键监听和鼠标监听

文章目录按键事件1. 使用 keyup.enter 修饰符2. 使用 v-on 监听键盘事件3. 在组件上监听原生事件Vue 2Vue 34. 全局监听键盘事件注意事项鼠标事件1. 基本鼠标事件监听常用鼠标事件2. 事件修饰符3. 鼠标按键检测4. 鼠标位置信息5. 自定义指令监听鼠标事件6. 组合鼠标事件7. 性能…

vue2启动问题以及解决方案

vue2启动时:ERROR Invalid options in vue.config.js: "typescript.validate.enable" is not allowed如果需要在 VSCode 中控制 TypeScript 验证:在项目根目录创建 .vscode/settings.json 文件(如不存在)添加以下配置&a…

Vue响应式系统:从原理到核心API全解析

响应式原理 响应式机制的主要功能就是,可以把普通的JavaScript对象封装成为响应式对象,拦截数据的读取和设置操作,实现依赖数据的自动化更新。 Q: 如何才能让JavaScript对象变成响应式对象? 首先需要认识响应式数据和副作用函数…

水下目标检测:突破与创新

水下目标检测技术背景 水下环境带来独特挑战:光线衰减导致对比度降低,散射引发图像模糊,色偏使颜色失真。动态水流造成目标形变,小目标(如1010像素海胆)检测困难。声呐与光学数据融合可提升精度&#xff0…

高通SG882G平台(移远):2、使用docker镜像编译

其实之前已经编译过了。今日搜索时发现,只有当时解决问题的汇总,没有操作步骤。于是记录下来。 建议使用Ubuntu20 LTS。 安装docker $ sudo apt update $ sudo apt install docker.io $ sudo docker -v Docker version 27.5.1, build 27.5.1-0ubuntu3…

轻松上手:使用Nginx实现高效负载均衡

接上一篇《轻松上手:Nginx服务器反向代理配置指南》后,我们来探讨一下如何使用Nginx实现高效负载均衡。 在当今高并发、大流量的互联网环境下,单台服务器早已无法满足业务需求。想象一下:一次电商平台的秒杀活动、一个热门应用的…

身份证号码+姓名认证接口-身份证二要素核验

身份证号实名认证服务接口采用身份证号码、姓名二要素核验的方式,能够快速确认用户身份。无论是新用户注册,还是老用户重要操作的身份复核,只需输入姓名及身份证号,瞬间即可得到 “一致” 或 “不一致” 的核验结果。这一过程高效…

自动驾驶基本概念

目录 自动驾驶汽车(Autonomous Vehicles ) 单车智能 车联网 智能网联(单车智能车联网) 自动驾驶关键技术 环境感知与定位 车辆运动感知 车辆运动感知 路径规划与决策 自动驾驶发展历程 自动驾驶应用场景 自动驾驶路测…

提示词框架(10)--COAST

目前,有很多提示词框架都叫COAST,但是每个的解释都不同,出现很了很多解释和演化版本,不要在意这些小事,我们都是殊途同归--让AI更好的完成任务COAST框架,比较适合需要详细背景和技术支持的任务,…

基于selenium实现大麦网自动抢票脚本教程

闲来无事,打开大麦网发现现在大多数演唱票都需要手机端才能抢票,仅有很少一部分支持pc端用网页去抢票,但正所谓:道高一尺,魔高一丈,解决这个反爬问题,我们可以采用Airtest连接仿真机来模拟手机端…

2048小游戏实现

2048小游戏实现 将创建一个完整的2048小游戏,包含游戏核心逻辑和美观的用户界面。设计思路 4x4网格布局响应式设计,适配不同设备分数显示和最高分记录键盘控制(方向键)和触摸滑动支持游戏状态提示(胜利/失败&#xff0…