Используйте переменные в пакете. json - PullRequest
2 голосов
/ 02 апреля 2020

Возможно получить доступ к переменным внутри пакета. json файл с $npm_package_[key]. Мне нужно сделать что-то подобное, но безуспешно:

{
  "name": "core"
  "version": "1.0.0"
  "scripts": {
    "first": "echo $npm_package_myvariable"
    "second": "echo $npm_package_myvariable"
  }
  "myvariable": "$npm_package_core:$npm_package_version"
}

Мне нужно повторно использовать значение ключа myvariable в нескольких сценариях, но неожиданно печатное значение равно $npm_package_core:$npm_package_version вместо ожидаемый core:1.0.0.

Я сейчас использую:

  • nodejs версия v10.16.3
  • macOS Catalina v10.15.3

Ответы [ 2 ]

0 голосов
/ 02 апреля 2020

Если вы используете Linux

{
  "name": "core",
   "version": "1.0.0",
   "scripts": {
     "first": "echo $npm_package_name:$npm_package_version"
      "second": "echo $npm_package_name:$npm_package_version"
    }
}

Если вы используете Windows

{
  "name": "core",
   "version": "1.0.0",
   "scripts": {
     "first": "echo %npm_package_name%:%npm_package_version%"
      "second": "echo %npm_package_name%:%npm_package_version%"
    }
}
0 голосов
/ 02 апреля 2020

Я выделяю 3 способа сделать это. Каждый путь является шагом к предыдущему.

1. Первый подход

package.json:

{
  "name": "core"
  "version": "1.0.0"
  "scripts": {
    "start": "echo $var1"
  }
}

Start npm:

var1=10 npm start

2. Второй подход

Первый подход потерпит неудачу, если пользователь не сможет добавить var1 во время выполнения npm. Лучше использовать значение по умолчанию

package.json:

{
  "name": "core"
  "version": "1.0.0"
  "scripts": {
    "start": "echo ${var1:10}"
  }
}

Start npm:

  • var1=20 npm start: использование переданного значения
  • npm start: используется определенное значение по умолчанию

Давайте теперь рассмотрим окончательный подход

3. Третий подход

Если вы хотите получить доступ к переменным в нескольких сценариях, вам нужно npm-run-all зависимость.

Установить зависимость:

npm i -D npm-run-all

package.json:

{
  "name": "core"
  "version": "1.0.0"
  "scripts": {
    "start": "npm-run-all multi:*",
    "multi:first": "echo ${var1:-10}"
    "multi:second": "echo ${var1:-10}"
  }
}

Старт npm:

var1=10 npm start
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...