Как стать автором
Обновить

Комментарии 5

Отличная подборка! 4 из 5 взял на вооружение.
Про дубликаты вопрос.
Ведь дубликаты в «сторонних» пакетах. Можно конечно залесть в /node_modules/somepkg/package.json и там поправить версию, но выглядит это как грязный хак. Есть способ получше?

В yarn можно задать в рамках вашего package.json-a
https://yarnpkg.com/lang/en/docs/package-json/#toc-resolutions


Кроме того, в рамках yarn можно массово слить дубликаты в yarn.lock, если их версии перекрываются — https://github.com/atlassian/yarn-deduplicate
Вручную слить одиночные дубликаты(с перекрывающимися версиями) в рамках yarn.lock тоже не сложно

Если пользуетесь yarn'ом, то поле «resolutions» в package.json решит вашу проблему — yarnpkg.com/lang/en/docs/selective-version-resolutions.
Для npm нативно кажется нет, но нашел вот такую штуку — github.com/rogeriochaves/npm-force-resolutions
Про то, как поправить дубликаты, есть отдельная глава Fixing bundle duplicates в документации inpectpack.

Ведь дубликаты в «сторонних» пакетах

Дубликаты вызываются сторонними пакетами, но есть шанс, что поправить это можно в своем package.json.

В примере из статьи можно поменять версию lodash@4.1.0 на lodash@3.0.0, чтобы избавиться от дубликата:
/* package.json */

{
  /* ... */
  "name": "my-app",
  "dependencies": {
    "lodash": "3.0.0", // 4.1.0 -> 3.0.0
    "one": "1.2.3"
  }
}


Если дубликаты возникают из-за конфликтов версий пакетов в других пакетах или не хочется откатываться на старую версию, то можно попробовать resolutions в yarn'e или resolve.alias в webpack'e.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.