Nodejs 为什么写在脚本里的 npm 命令会找不到呢?
Nodejs 为什么写在脚本里的 npm 命令会找不到呢?
我觉的应该是 npm 配置的问题,但没有找到解决办法。。。
在 npm 执行前 echo $PATH 看看
可能是你用了 npm XXX 而不是 npm run XXX
which npm, 然后脚本写完整路径试试
#path 的问题, 最好是针对全局的 /etc/profile 来一次 export,
要么就恶心一点 写绝对路径,我一般都是这么干的,
因为 linux 系统 bash 环境 太恶心了,经常会出现 not found xxx 之类的
/root/.nvm/v6.2.0/bin/npm 我想运行 npm install 完整路径怎么写?
脚本里面用绝对路径试试
哪里恶心了 把用户的 PATH 和系统的 PATH 隔离是一个很正确的做法呀 我猜他的脚本是用 crontab 之类的执行的 那个地方不是用户的环境 PATH 肯定是不对的
我想试试 shipit-deploy 实现自动化的服务器部署, https://cnodejs.org/topic/584545bd4c17b38d354363af
绝对路径怎么写呢?
那你自己在脚本里写死 /root/.nvm/v6.2.0/bin/npm install
就行了
Error: Command failed: ssh -i /Users/123/.ssh/id_rsa [email protected] “cd /tmp/deploy_to/current; /root/.nvm/v6.2.0/bin/npm install”
/usr/bin/env: node: No such file or directory
你好,能请教你一个问题吗?
在 Node.js 项目中,如果在脚本里写的 npm 命令找不到,可能有以下几个原因:
-
环境变量问题:确保 Node.js 和 npm 的安装路径已经添加到系统的环境变量中。可以通过在命令行运行
node -v
和npm -v
来检查它们是否安装正确且可用。 -
脚本中路径问题:在脚本中使用 npm 命令时,需要确保路径正确。如果在某个子目录下运行脚本,而 npm 命令是相对于项目根目录的,则需要调整路径或使用相对路径。
-
使用
npx
:如果 npm 命令在脚本中找不到,可以尝试使用npx
,它是 npm 包执行器,可以自动找到并运行项目依赖中的 npm 脚本。
示例代码:
# 在 package.json 中使用脚本
{
"scripts": {
"start": "node app.js",
"install-deps": "npx npm install" # 使用 npx 确保找到 npm
}
}
-
权限问题:在某些操作系统(特别是类 Unix 系统)中,执行 npm 命令可能需要管理员权限。可以尝试使用
sudo
前缀来运行脚本,但这不是推荐的做法,因为它可能带来安全风险。 -
检查 npm 配置:运行
npm config list
查看 npm 配置,确保没有错误配置影响命令执行。
确保以上方面都检查无误后,通常可以解决在脚本中找不到 npm 命令的问题。如果问题依旧存在,可以考虑查看 npm 的日志输出,或者运行 npm doctor
进行诊断。