用于Windows和Ubuntu的NodeJS exec()命令

使用NodeJS,NPM和Gulp。

我想构build一个吞咽任务来运行在UbuntuWindows上运行的JSDoc。

这在Ubuntu上运行…

var exec = require('child_process').exec; return function(cb) { exec('node node_modules/.bin/jsdoc -c jsdoc-conf.json', function(err, stdout, stderr) { cb(err); }); };

这在Windows上工作…

var exec = require('child_process').exec; return function(cb) { exec('node_modules\\.bin\\jsdoc -c jsdoc-conf.json', function(err, stdout, stderr) { cb(err); }); };

毋庸置疑,两者都不起作用。 别人怎么解决这类问题呢?

Node有process.platform ,它返回一个字符串,标识Node.js进程运行的操作系统平台,例如darwinfreebsdlinuxsunoswin32

https://nodejs.org/api/process.html#process_process_platform

var exec = require('child_process').exec;

return function(cb) { if (process.platform === 'win32') { // Windows OS } else { // everything else } };

尝试使用path.resolve ,它应该为您提供文件的完整路径,而不管平台如何。