使用的NodeJS,NPM和咕嘟咕嘟。
我想建立一个一口任务运行JSDoc是在Ubuntu和Windows的作品。
这适用于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);
});
};
不用说,对其他既不作品。如何解决等这类问题?
尝试使用path.resolve,这应该为您提供完整的文件路径,与平台无关。
节点process.platform
,这......“返回一个字符串,对在其Node.js的进程正在运行的操作系统平台,例如darwin
,freebsd
,linux
,sunos
或win32
”
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:
const exec = require('child_process').exec;
const path = require('path');
return function(cb) {
let command = `node ${path.resolve('node_modules/.bin/jsdoc')} -c jsdoc-conf.json`;
exec(command, function(err, stdout, stderr) {
cb(err);
});
};