Как и при старте нового проекта, начнем с особенностей package.json
⬇️ Начнем
В блоке скриптов package.json не должно быть никаких платформо-зависимых команд. Например, оператор & в Windows Cmd.exe ведет себя не так, как в bash. Для параллельного и последовательного запуска команд лучше использовать npmjs.com/package/npm-ru…
Кроме того, npm-run-all позволяет одной командой запускать несколько сценариев. Вместо:
npm run build:css && npm run build:js && npm run build:html
можем написать:
npm-run-all build:*
"test": "npm-run-all --parallel test:"
"test:lint": "eslint '**/.{ts,tsx}'"
"test:types": "tsc"
"test:unit": "react-scripts test --watchAll=false"
Просто и чётко, как png.
Аудит безопасности пакетов должен стать частью CI/CD. Органично впишем в наш список команд:
"test:audit": "npm audit --audit-level=high"
docs.npmjs.com/cli/v6/command…
Также имеет смысл добавить package.json свойство:
"private": true
Чтобы случайный npm publish не выкатил ваш код в публичный npm. Если вы думаете, что с вами такого никогда не произойдет, то у вас "optimism bias" (sciencedirect.com/science/articl…).
В старых проектах еще бывает полезно время от времени проверять package.json на неиспользуемые пакеты. В этом помогает depcheck и npm-check.
У них, конечно, бывают проблемы с ложноположительными результатами, обычно из-за webpack resolve.alias. Но в целом, свою задачу решают.