node.js - bash 没有运行 npm 或 npx 命令
问题描述
我目前正在尝试npx eleventy
通过 bash 脚本(在 cronjob 上)以编程方式运行一个函数
我已经在我的终端上试过了,它工作得很好,运行了一个命令
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 脚本中运行以下命令(如下)不起作用......
测试.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
解决方案
我认为问题是因为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
推荐阅读
- wordpress - 如何忽略对带有链接标签的古腾堡块的点击?
- reactjs - React-Devtools 停产了还是刚搬家?(React Native 调试)
- ckeditor5 - 如何让 CKEditor 5“链接”对话框固定到自定义 DOM 元素而不是“document.body”
- php - 如何编写一个 PHP 程序来显示所有 $_SERVER 元素
- api - 如何通过 Gitlab 的 API 执行 PUT 操作?
- ios - 防止AVPlayer进入后台时暂停?
- c# - CultureInfo("ar") 在服务器上返回英文
- powerbi - How to find day over day change in summarize table taking two columns into account
- python - return a list as a unique list using tuples
- asp.net-core - X.PagedList, manual Paging and a pre-existing webapi for data only advance 1 record at a time