Передайте аргумент команде сценария npm, вставив его, а не добавляя

Я хотел бы вставить аргументы где-нибудь внутри команды. Как-то интерполировать. Например:

{
    "scripts": {
        "foo": "git commit -am $message && git push"
    }
}

Затем запустите:

$ npm run foo -- --message "Baz"

Или что-то вроде этого:

"foo": "git commit -am {0} && git push"

Затем запустите:

$ npm run foo -- "Lorem"

Обратите внимание, что команда git здесь предназначена только для демонстрационных целей, у нас есть несколько разных команд. Так что псевдонимы Git не являются решением.

Есть ли способ добиться такого поведения с помощью npm?


person tenbits    schedule 29.01.2019    source источник
comment
Решение для вашего требования передать аргумент в середину сценария npm представлено в моем ответе здесь. также аналогично здесь< /а>   -  person RobC    schedule 29.01.2019
comment
Также здесь другой пример.   -  person RobC    schedule 29.01.2019


Ответы (1)


Благодаря @RobC оказалось, что мы можем указать оболочку для сценариев npm, поэтому в Windows я мог просто установить для нее git bash и использовать решение @RobC здесь

$ npm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe"

In package.json

"foo": "func() { echo \"$1\"; }; func"

Затем запустите:

$ npm start foo "lorem ipsum"
person tenbits    schedule 29.01.2019
comment
Спасибо! Интересно. Да, это альтернативное решение, и я уверен, что оно соответствует вашему варианту использования. Однако он не очень переносим между платформами (в отличие от решения nodejs), так как зависит от указания конфигурации пользователя и более старых версий Windows с git bash. - person RobC; 31.01.2019