npm lifecycle scripts
TIL, что в npm есть lifecycle scripts. Перед и после стандартных команд типа dev, build, test есть “хуки”, на которые можно подцепить нужные дополнительные команды.
| npm run dev | predev → dev → postdev |
| npm run build | prebuild → build → postbuild |
| npm test | pretest → test → posttest |
Добавляете в package.json скрипт с префиксом pre или post — npm запустит их с соответствующем порядке:
{ "scripts": { "build:client": "node esbuild.client.mjs", "predev": "npm run build:client" "dev": "tsx src/server/index.ts", }}Сначала predev соберёт клиент, dev → запустит сервер.
Полезно, когда перед запуском надо что-то подготовить — собрать ассеты, проверить типы, создать папки.
Что можно с этим сделать:
prepublishOnly— проверки перед публикацией пакета в npmprebuild— генерация кода или очистка папки distpostinstall— автоматические действия послеnpm install
Подробнее: docs.npmjs.com/cli/v10/using-npm/scripts