npm自定义node_modules路径
目标:
- 告别
sudo npm install -g+ 各种 EACCES 权限报错- 把 全局 npm 包(如
hexo-cli)安装到你自己的目录- 所有命令(
hexo、npm、pnpm等)能在终端直接用- 不污染系统
/usr/lib/node_modules/
先搞清楚几个概念:全局安装 vs 项目安装
项目安装(推荐,大部分情况用这个)
1
2npm install package-name # 安装到当前项目的 node_modules
./node_modules/.bin/xxx # 对应命令- 默认安装路径:
当前项目目录/node_modules - 不需要 sudo,和当前项目绑定
- 默认安装路径:
全局安装(-g,全局命令用)
1
npm install -g hexo-cli- 在 Linux 上默认装到:
/usr/lib/node_modules/(或类似路径) - 普通用户没权限写 -> 经典 EACCES 错误
- 在 Linux 上默认装到:
一、永久自定义全局安装目录(最推荐)
以 ~/.npm-global 为例,这个方案适合:
常年写代码 / 常用 CLI 工具 / 想要一劳永逸 的情况
1、创建一个属于你的全局目录
1 | |
2、告诉 npm:以后全局包都装到这里
1 | |
‘~/.npm-global’ 输出:/home/你的用户名/.npm-global
你可以用下面命令查看当前前缀:
1 | |
3、把全局命令目录加到 PATH 里
全局命令会被放在:
1 | |
要让 hexo、vue、vite、pnpm 这些命令能直接在终端里用,
需要把这个路径加入 PATH
Bash(大概率你用的是这个)
编辑 ~/.bashrc:
1 | |
在文件末尾加一行(如果已有类似 PATH 配置,可以合并):
1 | |
保存后加载配置:
1 | |
如果你用的是 zsh(echo $SHELL 看一下)
编辑 ~/.zshrc:
1 | |
同样加:
1 | |
保存后:
1 | |
4、现在安装 hexo-cli(示例)
1 | |
不会再写 /usr/lib/node_modules,而是写到:
1 | |
命令在:
1 | |
5、验证
1 | |
二、项目本地安装 + npx(完全不需要 -g)
对于很多 CLI 工具,其实不必全局安装,可以在项目目录内安装:
1 | |
[!NOTE]
示例:express
1 | |
- 安装路径:
项目目录/node_modules/express - 不会污染全局,不会有权限问题
- 做多个项目时,每个项目可以用不同版本的包
npm自定义node_modules路径
https://huishao.net/2025/11/13/npm自定义node_modules路径/