node.js - 在 Node/Grunt 中执行特定于操作系统的脚本

标签 node.js shell operating-system gruntjs

我有一个 Grunt 任务,它在本地机器上执行 .cmd 文件来完成它的工作。我需要在 CI 服务器上使用这个任务,这是一台 Linux 机器。我有相关的 .sh(Linux 的 shell 脚本)。我需要一种方法来执行这两个而不更改我的 Gruntfile。

目前我必须更改我的 Gruntfile 以使其在本地适用于 windows 和远程文件使用 .sh。

欢迎任何相同的解决方案。检测底层操作系统?或者一种调用内部调用操作系统特定命令的相同命令的方法?

最佳答案

您可以利用 Node 的 process.platform :

process.platform
What platform you're running on: 'darwin', 'freebsd', 'linux', 'sunos' or 'win32'

console.log('This platform is ' + process.platform);

然后在代码中,可选择添加基于此的文件扩展名:

if (process.platform === "win32") {
    ext = ".cmd";
} else {
    ext = ".sh";
}

关于node.js - 在 Node/Grunt 中执行特定于操作系统的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23846635/

相关文章:

node.js - 错误 - 运行 spookyjs

ios - 如何在没有 Amazon Cognito 的情况下使用 AWS S3?

objective-c - Xcode 自定义 shell 脚本正在减慢编译时间

linux - 在 shell 脚本中查找和替换

linux - DMA和内存映射IO有什么区别?

python - 如何使用 Python 在挂载之间 move 文件?

javascript - 在具有两个或多个返回 promise 的方法的 Firebase Cloud Function 中返回什么?

node.js - 如何将配置选项传递给yarn/npm

shell - 使用 curl 上传本地目录中的所有文件

C 编程 - 线程,以及什么是 void (*func)(void*, unsigned long)