Я запускаю npm install из корневую папку моего образца проекта для ее создания с использованием сценариев в package.json.
В сборке требуется несколько шагов транспиляции в настоящее время в prepublish script, но версия npm версии 4 отображает предупреждение о том, что происходит изменение прерывания, что заставило меня поверить в новый prepare событие сборки script - более надежное будущее.
C:\code\antlr4ts-json>npm install
npm WARN prepublish-on-install As of [email protected], `prepublish` scripts will run only for `npm publish`.
npm WARN prepublish-on-install (In [email protected] and previous versions, it also runs for `npm install`.)
npm WARN prepublish-on-install See the deprecation note in `npm help scripts` for more information.
...
К сожалению, просто перемещение script от prepublish до prepare прерывает обратную совместимость: если кто-то запускает npm install с помощью [email protected], шаги сборки в prepare молча игнорируются.
Что лучше всего подходит для обновления моего времени сборки script? В идеале я хотел бы обновить свой package.json, чтобы npm install работал для любого npm @ >= 3, но в качестве альтернативы генерирует ясное сообщение об ошибке, указывающее, что npm @ >= 4 требуется при запуске npm install с использованием npm @3.
Bakground: Я пытался включить
"engines": { "npm": ">=4.0.0" },
Благодаря @toomuchdesign (и другим), я понимаю, почему это не делает то, что я хочу; engines проверяет только, когда мой пакет установлен как зависимость, а не кто-то создает его из источников. Это имеет смысл.
Я отслеживал предысторию этого запланированного изменения до npm issue # 10074, что объясняет, почему необходимо изменить разрыв. Однако я все еще не понимаю, как лучше справляться с переходом.