【问题标题】:bash not running npm or npx commandsbash 没有运行 npm 或 npx 命令
【发布时间】:2020-06-12 06:16:26
【问题描述】:

我目前正在尝试通过 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

请寻求帮助!

编辑:

我的定时任务

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

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

PATH=/usr/bin:/bin

【问题讨论】:

  • 将您的 cronjob 添加到您的问题中(无评论)。
  • 添加了我的 cronjob!
  • 由于消息说'env:节点:没有这样的文件或目录',我会得出结论,错误来自#!/usr/local/bin/env node的执行,它在turn 意味着您的 PATH 未在您的 cron 作业中正确设置。在 test.bash 中执行 echo PATH=$PATH 1>&2 并检查下一次 cron 执行的输出。
  • 完成了,输出如下PATH=/usr/bin:/bin

标签: node.js bash shell npm


【解决方案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

【讨论】:

  • 这似乎对我不起作用。 . $HOME/.bash_profile 跑了,但将我的 PATH 指向另一个方向 PATH=/Users/me/miniconda3/bin:/Users/me/miniconda3/condabin:/opt/anaconda3/bin:/usr/bin:/bin
  • . $HOME/.profile$HOME/.bashrc 替换. $HOME/.bash_profile 看看是否有效
  • 也尝试了这两个,但他们都抛出了相同的消息/Users/me/.bashrc: No such file or directory
  • 嗯。 node 在哪里? /usr/local/bin?
  • 哦,好吧,我认为您可以将 . $HOME/.bash_profile 行替换为 export PATH=$PATH:/usr/local/bin 然后
猜你喜欢
  • 1970-01-01
  • 2021-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-14
  • 2020-03-08
  • 1970-01-01
相关资源
最近更新 更多