我使用TypeScript编写的脚本来重新确定应用程序中的项目状态。我通常运行下面这行代码:
npx ts-node statuscheck.ts我想让它在每天午夜运行,为此我尝试安排一个cron作业,如下所示:
0 0 * * * npx ts-node statuscheck.ts我认为这并不是真的有效,因为$PATH在cron中是不同的。有没有人知道调度这个脚本的正确方法,最好是在原始的npx行中使用ts-node?
发布于 2020-12-09 16:11:28
我终于想通了。将"cd“添加到命令中似乎完全解决了这个问题。这就是我的crontab最后的样子,没有错误,也不需要安装任何东西:
PATH=/root/.nvm/versions/node/v12.18.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
0 0 * * * cd /root/app/server/ && npx ts-node ./src/scripts/statuscheck.ts > /root/app/logs/statuscheck.ts.log 2>&1发布于 2020-12-09 05:31:13
您需要指定ts文件所在文件夹的路径。
0 0 * * * /path/to/the/folder/node_modules/.bin/ts-node statuscheck.ts发布于 2020-12-09 08:18:48
我已经更新到:
PATH=/root/.nvm/versions/node/v12.18.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
30 20 * * * npx ts-node /root/app/server/src/scripts/statuscheck.ts > /root/app/logs/statuscheck.ts.log 2>&1The log now says the following: npx: installed 9 in 2.19s Cannot find module 'typescript' Require stack:
/root/.npm/_npx/80229/lib/node_modules/ts-node/dist/index.js
/root/.npm/_npx/80229/lib/node_modules/ts-node/dist/repl.js
/root/.npm/_npx/80229/lib/node_modules/ts-node/dist/bin.js我有点不明白,因为Path现在等于我在终端中的值...我在终点站没有被问到这个问题。它工作起来没有任何问题...
https://stackoverflow.com/questions/65207012
复制相似问题