npm –prefix 指定目录

最新上线一个 nodejs 项目,使用 pm2 做进程管理器。

因为 pm2 更适合用作正式环境进程管理,不像开发环境使用 nodemon 实时监听文件改动重启 node 进程,所以每次发布之后需要执行 pm2 reload all 零延时载入代码。

pm2 reload all 被配置到 package.json 的 scripts,执行命令 npm run pm2_reload 即可载入代码。

现在的问题是 node 项目部署在 /www/ran-api,每次需要执行 cd /www/ran-api 进入该目录,才能执行 npm 命令,否则就会提示找不到 package.json 文件。

后来终于在 npm 官方文档 https://docs.npmjs.com/misc/config 找到 –prefix 配置,也可以直接查看 npm 自带的 Markdown 教程,一般位于 /nodejs 安装目录/node_modules/npm/doc/misc/npm-config.md

执行下述命令就不用再进入指定目录了:

/nodejs/npm –prefix=/www/ran-api run pm2_reload

其他命令也可以设置 –prefix,比如 npm config list

[~]$ /nodejs/bin/npm config list –prefix=/www/ran-api
; cli configs
; 这是增加的命令行参数 prefix,会被设置到 npm.localPrefix
prefix = “/www/ran-api”
user-agent = “npm/3.3.12 node/v5.5.0 linux x64”

; node bin location = /nodejs/bin/node
; cwd = /home/ran
; HOME = /home/ran
; “npm config ls -l” to show all defaults.

作者: 袖之欢

科技改变生活,编程改变世界。

发表评论

电子邮件地址不会被公开。 必填项已用*标注