Как использовать результат сценария NPM в другом сценарии NPM? - PullRequest
0 голосов
/ 04 июня 2018

Это может быть просто.Но я не могу заставить его работать.

Давайте рассмотрим простое (и обозначенное) package.json ниже.

{
  "name": "appName",
  "version": "1.0.0",
  "TEST": "1-0-0",
  "scripts": {
    "TEST_IN_SCRIPTS": " echo ${npm_package_version} | sed 's/\\./-/g' ",
    "deploy": "gcloud app deploy --version ${npm_package_scripts_TEST_IN_SCRIPTS}"
  },
  "dependencies": {
    "express": "^4.16.2",
    ...
  }
}

Я хочу deploy приложение с --version равнымversion (он же 1.0.0).Однако Google App Engine не позволяет . (точка).

Идея заключается в том, чтобы развернуть 1-0-0 (вместо 1.0.0), что разрешено GAE.

TEST_IN_SCRIPTS работает и возвращает 1-0-0 Однако, когда я передаю ${npm_package_scripts_TEST_IN_SCRIPTS} скрипту deploy, он завершается неудачей, потому что возвращает строку ${npm_package_scripts_TEST_IN_SCRIPTS} вместо результата (1-0-0).

Любая подсказка длясделать это работает?Спасибо.

Ответы [ 2 ]

0 голосов
/ 05 июня 2018

Я нашел простое решение, которое работает для меня.Спасибо @Juan, ты покажешь мне дорогу!

Ниже моего тронкнутого пакета. Json

{
  "name": "...",
  "version": "1.0.1",
  "scripts": {
    "deploy": "GAE_VERSION=$(echo ${npm_package_version} | sed 's/\\./-/g') && gcloud app deploy --version $GAE_VERSION"
  },
  "dependencies": {...},
  "devDependencies": {...}
}

Это - на самом деле - довольно просто.

  1. получитьnpm_package_version и изменить с помощью sed . на - (GAE в порядке с дефисом)
  2. Назначить результат переменной (здесь: GAE_VERSION)
  3. Использовать gcloud команда для развертывания с использованием переменной GAE_VERSION.

идентичный вопрос , где я отправляю тот же самый ответ.

0 голосов
/ 04 июня 2018

Попробуйте передать по выводу TEST_IN_SCRIPTS:

"deploy": "npm run TEST_IN_SCRIPTS | xargs gcloud app deploy --version",

...