JS JavaScript  ·  30 вопросов  ·  ~85 мин  ·  ⏱ Таймер 25:00  ·  Сложный  · 

Пакеты, npm и цепочка поставки

Профессиональный тест о package.json, семантических версиях, lock-файлах и рисках зависимостей. Задания требуют отличать диапазон от установленного дерева, понимать npm ci, оценивать install scripts и разбирать обновление не по одному числу severity, а по достижимости и последствиям.

Отвечено: 0 из 30
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. В тесте 30 вопросов и 85 минут; код лучше читать построчно, не полагаясь на первое впечатление. После завершения откроются общий процент, 6 тематических шкал и объяснение каждого решения.
Вопрос 1 из 30
Где должна находиться библиотека, импортируемая сервером в рабочем запуске?
JSONpackage.json
{"dependencies":{"fastify":"^5.0.0"},"devDependencies":{"eslint":"^9.0.0"}}
Вопрос 2 из 30
Что делает поле private: true в корневом приложении?
JSONpackage.json
{"name":"internal-app","private":true}
Вопрос 3 из 30
Зачем библиотеке peerDependencies для framework?
JSONpackage.json
{"peerDependencies":{"react":"^19.0.0"}}
Вопрос 4 из 30
Что даёт exports?
Вопрос 5 из 30
Является ли engines.node жёсткой защитой выполнения во всех установках?
Вопрос 6 из 30
Какие обновления разрешает каретка в записи зависимости ^2.3.4?
JSONpackage.json
{"dependencies":{"lib":"^2.3.4"}}
Вопрос 7 из 30
До какой версии может обновиться библиотека при тильде ~2.3.4?
JSONpackage.json
{"dependencies":{"lib":"~2.3.4"}}
Вопрос 8 из 30
Какой релиз соответствует исправлению совместимого дефекта в стабильном 4.2.1?
JavaScript
// Было 4.2.1; исправлена ошибка без изменения публичного API.
Вопрос 9 из 30
Почему ^0.2.3 уже, чем ^2.3.0?
Вопрос 10 из 30
Будет ли 2.4.0-beta.1 автоматически подходить обычному ^2.3.0?
Вопрос 11 из 30
Что делает npm ci при расхождении package.json и package-lock.json?
BashКоманда
npm ci
Вопрос 12 из 30
Зачем коммитить package-lock приложения?
BashКоманда
git diff -- package-lock.json
Вопрос 13 из 30
Почему npm install может изменить lock?
BashКоманда
npm install
Вопрос 14 из 30
Достаточно ли одинакового package.json для одинакового дерева без lock?
Вопрос 15 из 30
Что особенно проверить в подозрительном lock diff?
Вопрос 16 из 30
Почему postinstall стороннего пакета требует внимания?
JSONpackage.json пакета
{"scripts":{"postinstall":"node setup.js"}}
Вопрос 17 из 30
Как снизить риск typosquatting?
BashКоманда с опечаткой
npm install lodahs
Вопрос 18 из 30
Что означает npm audit report сам по себе?
BashКоманда
npm audit --json > audit.json
Вопрос 19 из 30
Почему npm audit fix --force опасен без проверки?
BashПринудительное обновление
npm audit fix --force
Вопрос 20 из 30
Почему пакет из одной тривиальной функции тоже имеет цену?
Вопрос 21 из 30
Как узнать, почему транзитивный пакет установлен?
BashКоманда
npm ___ minimatch
Вопрос 22 из 30
Почему у разработчика и CI разные зависимости при наличии lock?
BashДиагностика
node --version
npm --version
npm config get registry
npm ci
Вопрос 23 из 30
Что означает peer dependency conflict?
BashКоманда установки
npm install
Вопрос 24 из 30
Как безопаснее проверить обновление критической библиотеки?
Вопрос 25 из 30
Что собрать при 404 от private registry?
Вопрос 26 из 30
Почему одна зависимость может сильно увеличить browser bundle, даже если её tarball мал?
JavaScript
import { tinyHelper } from "large-library";
// Проверить, что реально включил сборщик.
Вопрос 27 из 30
Что может вызвать дублирование одной библиотеки в bundle?
BashКоманда
npm ls shared-lib
Вопрос 28 из 30
Почему регулярные небольшие обновления легче редких огромных?
Вопрос 29 из 30
Стоит ли насильно применять overrides до одной версии при несовместимых требованиях?
Вопрос 30 из 30
Как измерить холодную установку честнее?

Ответьте на все 30 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу