foundation
npm scripts
Используйте package scripts для repeatable dev, test, build, validation, environment и lifecycle workflows.
Скрипты в package.json — контракт разработки, тестов, сборки и запуска; повторяемые команды без знания деталей toolchain.
{
"scripts": {
"dev": "node --watch src/server.js",
"build": "tsc -p tsconfig.build.json",
"start": "node dist/server.js",
"test": "vitest run",
"lint": "eslint .",
"prestart": "npm run build"
}
}
`npm run` добавляет `node_modules/.bin` в PATH — локальные CLI без глобальной установки. Хуки `pre*`/`post*` связывают шаги, но могут удивить CI.
Кроссплатформенность: небольшие Node-обёртки или `cross-env`, не shell-синтаксис только для Unix.
На интервью: структура скриптов для CI и локальной разработки; `prepare` для git hooks; `npm test` как единая точка верификации.
Типовые ошибки: бизнес-логика в bash one-liner; скрипты с глобальным побочным эффектом; нет ветки поведения при `CI=true`.
Компромисс — между простотой, производительностью, безопасностью и эксплуатацией: назовите, что оптимизировали и какую цену приняли.
Чеклист:
- Одна очевидная команда на задачу.
- Toolchain в devDependencies.
- Идемпотентность для CI.
- Документируйте ожидаемые env vars.