2014-11-16 9 views
0

У меня возникла странная проблема при установке Gulp в новом проекте.Gulp устанавливает внешний корневой каталог проекта

Скажем, у меня есть следующий путь:

c:/development/myproject 

Когда я бегу npm install gulp в этой директории, то node_modules папка фактически получает созданный в

c:/development/node_modules 

вместо

c:/development/myproject/node_modules 

И все плагины gulp также устанавливаются в этом каталоге вне моего проекта roo т.

У меня также есть более ранний проект, в котором gulp уже был установлен раньше, и когда я попытался перезапустить установку gulp в этом каталоге проекта, он был правильно установлен в корне проекта (например: c:/development/myolderproject/node_modules), а не снаружи.

Я не думаю, что это не имеет ничего общего с делом, но новый проект использует Laravel 4, в то время как другой находится на Laravel 5.

Я не помню, чтобы установить какой-либо конкретной конфигурации, поэтому я совершенно смущен, почему он ведет себя по-другому.

+1

Вы можете проверить, есть ли пакет .json в 'c:/development' или' c:/development/myproject'? – Heikki

+0

Действительно, это было в 'c:/development'. После удаления его и создания пустого в папке проекта gulp теперь устанавливается в корне проекта. Спасибо за подсказку! – Nicolas

ответ

2

Когда вы сделали npm install, он нашел package.json из родительского каталога и подумал, что это был корень пакета.

Связанные документы: https://www.npmjs.org/doc/files/npm-folders.html#more-information

Начиная с $ PWD, НПМ будет идти вверх по дереву папок, проверка на папку, которая содержит либо package.json файл, или node_modules папку. Если такая вещь найдена, то это рассматривается как эффективный «текущий каталог» для запуска команд npm. (Такое поведение вызвано и похоже на логику поиска git-файлов git при запуске git-команд в рабочем каталоге.)

Если корневой каталог пакета не найден, используется текущая папка.

0

Я запустил Ubuntu 15, и у меня была аналогичная проблема, когда gulp устанавливал папку node_module где-то, чего я не мог найти. gulp скажет ../../node_modules было местоположение, но оно не было в моей папке проекта.

Я понял из ссылки выше и еще несколько исследований, которые мне просто нужно было запустить npm init, чтобы создать project.json в моей папке проекта. gulp устанавливал node_modules в другой папке, потому что он искал файл project.json для установки папки node_modules.

Надеюсь, это поможет кому-то еще решить эту глупую проблему.