我有一个 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/