«Npm install» устанавливает все зависимости в каталоге node_modules, вместо того, чтобы иметь вложенные

Мне нужно знать, нормально ли следующее поведение.

Когда я npm install , каждый пакет из моего package.json и зависимостей больше не устанавливается вложенным , но каждая зависимость устанавливается в каталоге node_modules . Это приводит к тому, что моя директория node_modules взорвана и выглядит следующим образом:

Снимок экрана каталога node_modules

Это произошло после обновления npm и узла.

Теперь я запускаю:

 npm -v 3.3.6 node -v 4.2.1 python 2.7 windows 7 wamp 

Мой файл package.json выглядит следующим образом:

 { "private": true, "devDependencies": { "gulp": "^3.8.8" }, "dependencies": { "laravel-elixir": "^3.0.0", "bootstrap-sass": "^3.0.0" } } 

Это стандартный файл laravel package.json .

Есть ли способ иметь вложенные каталоги снова, потому что мне не нравится такая взорванная статья с более чем 100 вспомогательными каталогами.

Это новое поведение npm 3 в этом блоге npm .

Обновление: Как отметил Эрик Пукински в комментариях: Начиная с версии npm 3.5, поддержка для --legacy-bundling была удалена.


Да, есть способ снова вставить вложенные каталоги, изменив поведение по умолчанию npm (версия 3 на момент написания этой статьи):

  1. Удалите node_modules папку node_modules .

  2. Сообщите npm для установки с устаревшим пакетом для этой установки:

    npm install --legacy-bundling

«Постоянная» альтернатива:

  1. Установите свою конфигурацию npm, чтобы всегда использовать устаревшее связывание …

    npm set legacy-bundling=true

  2. .. и работать как обычно:

    npm install

Примечание. Получение зависимостей с устаревшим пакетом займет намного больше времени, потому что будет установлено много разных версий одинаковых зависимостей.

Отказ от ответственности: как пользователь, не относящийся к Windows, мне не нужны плоские зависимости и вы хотите легко найти самозапросывающиеся зависимости в пользу автоматической дедупликации. Поскольку установка зависимостей npm без устаревшего пакета уже занимает невероятное количество времени, я обычно готов потратить эти дополнительные минуты на установку. Он возвращается к 5 каталогам из ранее 700+ (…) в настройке El Larvel Elixir с бутстрапом (не-sass), шрифтом-awesome и jquery.

  • Как установить модуль глобально с помощью npm?
  • Найдите версию установленного пакета npm
  • Как можно решить npm UNEPT PEER DEPENDENCY?
  • Не удалось установить пакет npm "npm ERR! errno -4048 "
  • узел 5.5.0 уже установлен, но node -v выбирает «v4.2.1» на OS X и homebrew?
  • НПМ за прокси-сервером NTLM
  • Как я могу указать нужную версию Node.js в packages.json?
  • npm WARN notsup ПРОПУСТИТЬ ДОПОЛНИТЕЛЬНАЯ ЗАВИСИМОСТЬ: Неподдерживаемая платформа для [email protected]
  • команда bower не найдена
  • npm glob pattern не совпадает с подкаталогами
  • NPM global install "не может найти модуль"
  • Давайте будем гением компьютера.