Я хочу написать npm-скрипты, которые запускаются при изменении версии пакета через npm version. Я не собираюсь вызывать мои скрипты напрямую через npm run _____; вместо этого они должны вызываться npm, когда вызывается npm version ____ (или preversion или postversion и т. д.).
Как я могу ссылаться на аргумент уровня версии в своих сценариях?
например Если мой скрипт работает как preversion и вызывается из npm version major, как мой скрипт может ссылаться на major?
Извините, не могли бы вы объяснить, как я могу использовать решение этого вопроса, чтобы ответить на мой? Я не пишу произвольный скрипт, который вызывается непосредственно npm run myScript; вместо этого myScript вызывается на хуке жизненного цикла version. Команда npm version уже принимает аргумент и выполняет собственную проверку. Я просто хочу сослаться на значение этого аргумента в myScript.





В моем сценарии я могу ссылаться на process.env.npm_config_argv. Его значение представляет собой строку JSON, содержащую исходные аргументы для npm.
Если мой package.json содержит:
"scripts": {
"preversion": "node log_argv"
}
А log_argv.js содержит:
console.info('Type:', typeof process.env.npm_config_argv);
console.info('Value:', process.env.npm_config_argv);
console.info('Original npm args:', JSON.parse(process.env.npm_config_argv).original);
throw new Error("aborting");
И запускаю npm version patch, потом вижу вывод:
Type: string
Value: {"remain":["patch"],"cooked":["version","patch"],"original":["version","patch"]}
Original npm args: [ 'version', 'patch' ]
Возможный дубликат Передать аргументы командной строки в сценарии npm в package.json