Распределите аргументы командной строки, используя npm в качестве инструмента сборки - PullRequest
0 голосов
/ 03 февраля 2019

У меня есть пакет npm, который управляет моим репозиторием github, и есть сценарии, которые создают мой публикуемый пакет npm.Из-за характера пакета опубликованный пакет npm (дистрибутив) не может совпадать с пакетом моего репозитория (источник).Я приближаюсь к разработке, ориентированной на тестирование, и к непрерывной интеграции, но изучаю ее постепенно.Вот текущий поток, и он пока работает без нареканий:

Из командной строки:

> npm run patch
  1. работает npm version patch
    1. Это вызывает источник preversion,
      1. очищает дистрибутив: npm run clean
      2. запускает тесты: npm test
        1. Это вызывает pretest,
          • npm run build
        2. Запускает тесты дистрибутива
          • Ошибка: Ошибки и процесс завершается
          • Успех: Ветвь завершена,
    2. вызывает источник postversion:
      • git push все коммиты и теги
  2. запускает дистрибутив npm version patch
    1. вызывает дистрибутив postversion
      • npm publish

(Источник) package.json

{
    ...,
    "scripts": {
        "patch": "npm version patch && cd dist && npm version patch",
        "minor": "npm version minor && cd dist && npm version minor",
        "major": "npm version major && cd dist && npm version major",
        "preversion": "npm run clean && npm test",
        "clean": /* clean commands */,
        "pretest": "npm run build",
        "test": "cd dist && npm test",
        "postversion": "git push origin --all && git push origin --tags"
    },
    ...
}

(Distro) package.json

{
    ...,
    "scripts": {
        "test": /* test commands */,
        "postversion": "npm publish"
    },
    ...
}

Я бы хотел иметь более простой интерфейс.Как видите, мне нужно npm run <major|minor|patch>.Вместо этого я бы хотел npm run dist с аргументом командной строки, передаваемым в обе версии npm.

Пример:

> npm run dist patch
--------------------
<<< npm version patch
<<< cd dist && npm version patch

> npm run dist major
--------------------
<<< npm version major
<<< cd dist && npm version major

Можно ли передавать аргументы командной строки вниз по дереву?Или, что еще лучше, я могу распределить аргумент командной строки по командам в одной записи сценариев?Я легко могу добавить запись в scripts, которая принимает аргумент командной строки, но, похоже, не может понять, как разделить этот аргумент более одного раза при написании отдельного сценария .js.

...