2016-06-30 2 views
1

Использование NodeJS, NPM и Gulp.Команда NodeJS exec() для Windows и Ubuntu

Я хочу построить задачу gulp для запуска 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); }); };

Излишне и говорить, ни работает на другой. Как другие решают эту проблему?

ответ

2

Узел имеет process.platform, который ... "возвращает строку, идентифицирующую платформу операционной системы, на которой процесс Node.js работает. Например, darwinfreebsd, 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 } };

1

Попробуйте использовать path.resolve, который должен предоставить вам полный путь к файлу независимо от платформы.

Смежные вопросы