Вопрос:

NodeJS: запускать косую черту в командной строке Windows

javascript node.js

382 просмотра

2 ответа

3256 Репутация автора

Я пытаюсь получить следующий код, который должен выполнить команду оболочки для работы в OSX и Windows.

const exec = require("child_process").exec;
const runCommand = (cmd) => exec(cmd,
    function (error, stdout, stderr) {
        if (stdout.length > 0) {
            console.log(stdout);
        }
    });

Для следующего runCommand("./node_modules/.bin/someBinary")это не работает в Windows. Но он отлично работает в OSX. Поэтому мне интересно, какие модификации мне нужны, чтобы он работал и в Windows?

Автор: starcorn Источник Размещён: 10.03.2017 02:51

Ответы (2)


0 плюса

4211 Репутация автора

Рассматривали ли вы попробовать в npm-exec ?

Загружает ту же среду, которая присутствует в npm run-script, но выполняет произвольные командные строки bash. (даже на окнах! Спасибо застенчивым). Это включает в себя изменение $ PATH, чтобы скрипты в node_modules / .bin использовались перед глобальными модулями.

Таким образом, вы могли бы npm-exec someBinaryвместо использования относительного пути нарушить совместимость с Windows / OSX

Если этот модуль вам не подходит, вы также можете попробовать, npm binкак описано в этом ответе .

Автор: bviale Размещён: 10.03.2017 03:05

0 плюса

3256 Репутация автора

Решение

Итак, в конце концов, я решил проблему, проверив, на какой платформе я работаю, и, в свою очередь, просто написал ту же команду с конкретной ОС, чтобы она работала.

Короче я привык process.platformвыяснять какая это ОС. Не самый элегантный. Но, по крайней мере, это решило мою проблему.

Автор: starcorn Размещён: 10.03.2017 03:37
Вопросы из категории :
32x32