bash没有运行npm或npx命令

时间:2020-06-12 06:16:26

标签: node.js bash shell npm

我目前正在尝试通过bash脚本(在cronjob上)以编程方式运行npx eleventy函数

我已经在我的终端上尝试过了,它运行正常,运行了这样的命令

cd /Users/me/Desktop/test-folder/public && /usr/local/bin/npx eleventy

还检查了以下内容

npm -v-6.14.5

npx -v-6.14.5

运行which npm返回/usr/local/bin/npm并 运行which npx返回/usr/local/bin/npx

但是,在bash脚本中运行以下命令(如下)不起作用...

test.bash

cd /Users/me/Desktop/test-folder/public && /usr/local/bin/npx eleventy
cd /Users/me/Desktop/test-folder/public && /usr/local/bin/npx -v
cd /Users/me/Desktop/test-folder/public && /usr/local/bin/npm -v

引发以下错误:env: node: No such file or directory

但是,看来我确实在运行以下命令时有一个节点,

cd /Users/me/Desktop/test-folder/public && /usr/local/bin/node -v

返回v12.16.1

请寻求帮助!

编辑:

我的cronjob

* * * * * bash /Users/me/Desktop/test.bash >> /Users/me/Desktop/testvimbackup.log 2>&1

echo PATH=$PATH 1>&2的输出:

PATH=/usr/bin:/bin

1 个答案:

答案 0 :(得分:1)

我认为问题是因为crontab在空环境下运行。

尝试以这种方式(通过脚本)采购您的个人资料

. $HOME/.bash_profile

cd /Users/me/Desktop/test-folder/public && /usr/local/bin/npx eleventy
cd /Users/me/Desktop/test-folder/public && /usr/local/bin/npx -v
cd /Users/me/Desktop/test-folder/public && /usr/local/bin/npm -v

(或尝试使用. $HOME/.profile$HOME/.bashrc,如果它不起作用)

替代:手动设置节点的路径

export PATH=$PATH:/usr/local/bin


cd /Users/me/Desktop/test-folder/public && /usr/local/bin/npx eleventy

cd /Users/me/Desktop/test-folder/public && /usr/local/bin/npx -v

cd /Users/me/Desktop/test-folder/public && /usr/local/bin/npm -v