🔥

Тред (Назим Гафаров)


Как и при старте нового проекта, начнем с особенностей 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. Но в целом, свою задачу решают.