问题标签 [shelljs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - webpack + shelljs 会抛出“错误:找不到模块'/exec-child.js'”
我想用shelljs用javascript写一些脚本,因为我想使用一些新的JavaScript特性,所以我使用Babel + webpack将我的代码捆绑到一个单独的bundle js中。
代码很简单:
entry.js
webpack.conf.js
包.json
当我运行“npm install && npm run demo”时,它会抛出:
我不知道为什么。
这里也是这个问题的完整小演示,你可以克隆并运行它:
https://github.com/freewind-demos/javascript-shelljs-webpack-demo
javascript - 如何使用Node在bash中创建环境变量并在程序执行后让变量存活
xapp
我有一个在控制台中运行的节点程序。我想xapp
创建一个环境变量,在用户关闭终端之前(不仅在程序运行时)保持活动状态。
到目前为止我试过这个:
这不会在控制台中打印任何内容。
但即使显示“培根”,我真正想要的是环境变量在xapp
完成后仍然存在......所以我可以在终端中执行它:
并看到他展示“培根”。
我想要做的是xpat
通过多次执行进行通信,但只有在同一个终端会话处于活动状态时。
我尝试使用process.env
没有成功,因为环境变量仅在同一进程中有效。
javascript - 执行代码行的Javascript顺序
我正在做一个在 Raspberry Pi 3 中实现的 Telegram Bot。所以我的第一个想法是使用带有 Node.js 的“telegraf”并在那里执行 BOT 的代码,但也使用“shell.js”我想运行一些树莓终端上的命令。问题是我希望 BOT 中的代码等到文件被下载然后程序继续......
这里的问题是程序做了一些不按出现顺序的事情。
在此特定代码中,我想程序编写“正在下载...”,然后启动
script_Download并暂停程序,直到命令 wget 完成(在script_Downlaod内)这部分是通过以下方式完成的:while(shell.exec('ps -ef | grep wget | grep -v grep')!=''){}
。但返回类似于“未找到文件”(这意味着 wget 没有完成),然后在 Telegram 聊天中写入“正在下载”和“正在将文件上传到 Google Drive...”。
所以,我想知道如何使这部分代码按顺序执行:首先编写下载,执行脚本,等到它完成然后编写上传......(对不起,我不太了解Javascript所以我现在的知识是基本的)
shelljs - 重命名目录中的文件(Shelljs)
如何将文件重命名到同一目录?
当我运行它时,出现以下错误:
shell.cp('-R', './../../config/test.txt', './../../config/test1.txt');
- cp: dest 不是目录(来源太多)
我阅读了文档,但没有一个回答我的问题。
谢谢你的帮助。
node.js - 从 cron/shellJS 重新启动 pm2 - bcrypt 版本错误
我正在尝试在 Ubuntu 18.04 中设置一个crontab
进程来定期检查状态pm2
并在必要时重新启动它。因为我更熟悉 JavaScript,所以我决定让 crontab 进程运行一个节点文件,该文件从 pm2 获取 JSON 读数,以检查 pm2 中每个应用程序的状态。如果检测到任何问题,JS 文件将bash
使用shellJS
. 就这样:
- crontab
- 节点脚本
- 如果 pm2 应用程序有问题,请执行 bash 脚本
- 删除现有的 pm2 应用程序并启动它的新实例
但是,当我从 JS 文件执行此操作时,我收到以下源自 bcrypt 的错误:
这很奇怪。如果我从命令行运行 bash 脚本,或者直接在命令行中运行命令,我不会收到错误 - 只有当我从 shellJS/node.js 启动它时。
这是从节点调用它的行:
shell.exec('/var/scripts/restart-pm2.sh')
这是restart-pm2.sh
文件中的行:
pm2 start /root/ecosystem.config.js --only index
再一次,运行那个确切的命令可以正常工作。
更新:
我尝试直接从 cron 运行 bash 脚本,但我也得到了错误。因此,显然不是 shellJS/node 导致错误,而是与 cron 上下文有关。
node.js - 使用 Node-Cron 运行带有 Node 的 JS 文件
我正在尝试使用 node-cron 和 shelljs 设置任务来运行带有 node.js 的 js 文件。我设置正确吗?
node.js - 节点使用变量内容执行shell命令
我正在尝试运行 shell 命令,kubectl
用于运行部署。部署配置存储在deploymentConfiguration
变量中。
当我运行以下命令之一时,出现错误。
返回错误:
error: error validating "STDIN": error validating data: invalid object to validate; if you choose to ignore these errors, turn validation off with --validate=false
返回错误:
/bin/sh: apiVersion:: not found
/bin/sh: kind:: not found
我使用终端在本地对此进行了测试,使用 kubectl 命令回显了配置和管道并成功部署。
的内容deploymentConfiguration
是:
这是我在回显配置时得到的输出:
由于信息安全,我发出了环境变量
如何确保将内容deploymentConfiguration
正确传递给 shell 命令?
谢谢。
node.js - 在 Node.js 中执行 bash 脚本时,SSH 连接被拒绝
所以我的结构是这样的:
main.js
requires jsFile1.js
,然后 requires 并运行jsFile2.js
. jsFile2.js
然后最终bashFile.sh
使用 ShellJS 运行并传递三个参数。
bashFile.sh:
我的问题是,当我手动开始bashFile.sh
使用它时,它工作得很好并且符合预期,但是当我运行它最终也运行脚本bash bashFile.sh parameter1 parameter2 parameter3
时它不起作用。main.js
我只是得到
还有什么奇怪的,我把shell.exec
部件移到了jsFile1.js
它,它工作了几次,但是当我再次尝试时,我的连接也被拒绝了。
注意 1:我以前从未连接到服务器,所以它不在我的known_hosts
.
注 2: child_process 产生相同的错误。
node.js - NodeJS 执行一个提示键盘输入的 bash 脚本
我正在尝试从 nodejs 执行外部 bash 脚本。
从终端执行脚本时,会提示输入,例如密码。
从 nodejs 执行时,我无法让它暂停以读取输入。
在网上找不到任何好的信息。
这不可能吗?
密码:对话失败
node.js - 在 Docker 容器中执行 shell 脚本时的 ENONENT
我正在使用node:12-alpine
调用 ShellJSspawn
命令的 NodeJS 后端。它应该运行 shell 脚本,我已经验证并测试了它在本地工作。但是,它在 Docker 容器中运行时会显示此错误。
我还使用 docker exec 验证了该脚本是否存在于文件夹中。
我需要在 alpine 中进行配置才能使其正常工作吗?
这是 ShellJS 调用的命令:source execute.sh