Это мой package.json
модуль, который я включаю в родительский проект:
{
"version": "0.0.1",
"name": "module-name",
"dependencies": {
"express": "3.3.4",
"grunt": "0.4.1",
"grunt-contrib-compass": "0.4.0",
"grunt-contrib-copy": "0.4.1",
"grunt-contrib-cssmin": "0.4.1",
"grunt-contrib-jshint": "0.6.3",
"grunt-contrib-requirejs": "0.4.1",
"grunt-contrib-uglify": "0.2.2",
"grunt-contrib-watch": "0.5.1",
"grunt-express-server": "0.4.1",
"grunt-karma": "0.4.5",
"grunt-regex-replace": "0.2.5",
"request": "2.25.0"
},
"scripts": {
"postinstall": "grunt install"
}
}
Стоит отметить, что этот модуль содержится в закрытом репо, и я включаю его в родительский репозиторий, package.json
например:"module-name": "git+ssh://git@myserver:user/module-name.git"
postinstall
скрипт не выполняется, потому что локальныеgrunt
пакеты не найдены, так как они не установлены NPMОтветы:
Похоже, вы обнаружили ошибку, которая существовала довольно давно и пока не имеет решения. В этом случае в репозитории npm есть несколько открытых вопросов:
В первом люди перечисляют несколько обходных путей, которые вы можете попробовать.
Альтернативное решение может быть (немного хакерским) для явного перечисления зависимостей как зависимостей первого уровня. Это требует от вас ведения списка, но практически это должно быть сделано очень редко.
источник
У меня была очень похожая проблема, удаление всей
node_modules
папки и повторная установка работали для меня. Узнал этот трюк из шоу IT Crowd !источник
npm install
.Я использую машину Windows.
источник
если вы унаследовали этот код, возможно, что зависимости и версии были заблокированы, и у вас есть файл ./npm-shrinkwrap.json.
если ваша зависимость не указана в этом файле, она никогда не будет установлена с помощью
npm install
команды.вам нужно будет вручную установить пакеты, а затем запустить их,
npm shrinkwrap
чтобы обновить файл shrinkwrap.источник
package-lock.json
файл после обновления до узла 8.0.0 и npm 5.0.0. После этого при запускеnpm install
установится только один пакет вместо всех моих зависимостей. Удалениеpackage-lock.json
и повторный запускnpm install
решили проблему для меня.package-lock.json
мешал.Я подозреваю, что вы столкнулись с проблемой, когда ваш
package.json
файл не находится в том же каталоге, что и вашGruntfile.js
. Когда вы запускаете вашиgrunt xxx
команды, вы получаете сообщение об ошибке вроде:На данный момент решение:
npm install
чтобы загрузить их локальноИМХО, это печально, что мы не можем иметь загруженные модули разрешения из родительского модуля npm (то есть package.json в родительском каталоге в том же проекте). Обсуждение здесь, кажется, указывает на то, что это было сделано, чтобы избежать загрузки «глобальных» модулей, но я думаю, что мы хотим вместо этого загружать из модулей «мой проект».
источник
Gruntfile.js
и оба содержатpackage.json
на одном уровне.grunt
, это проблемаnpm
нерекурсивной установки зависимостей в моем проекте подмодуля.OP может быть верным для более старой версии узла. Однако с узлом 4.4.1 я столкнулся с тем же.
Это очень хорошо может быть связано с версией узла, которую вы используете. Попробуйте обновить до последней версии. Определенные зависимости не загружаются транзитивно, если они несовместимы с версией узла.
Я нашел это, запустив
npm update
.После обновления до последней версии (4.4 -> 5.9); это исправлено.
источник
В моем случае это помогло удалить
node_modules
иpackage-lock.json
.После этого просто переустановите все с
npm install
.источник
Также убедитесь, что имя вашего пакета правильно принято:
НЕПРАВИЛЬНО:
ВЕРНЫЙ
источник
Возможно, вам придется установить grunt-cli, попробуйте это перед установкой npm:
Это исправит, что grunt не выходит для меня, вам также понадобится действительный файл grunt.
Источник: https://stackoverflow.com/a/16456467/241294
источник
~ ᐅ which grunt /opt/local/bin/grunt
npm install
иgrunt install
он работает отлично. Проблема в том, что NPM, похоже, не устанавливает зависимости репо, как указано вpackage.json
grunt
, когда вы устанавливаете модули с помощью NPM, он обычно предоставляет резюме в конце любых зависимостей этого модуля, которые уже были установлены; при установке данного модуля я не получаю сумму установленных модулей зависимостей.На всякий случай, если кто-то страдает от этого затруднения и совершает ту же асаниновую ошибку, что и я, вот что было в моем случае. После того, как я в течение часа ударился головой о стену, я понял, что мой JSON неправильно вложен, а ключ «зависимости» находится внутри ключа «хранилище».
Излишне говорить, что никаких ошибок не было видно, и модули не были установлены.
источник
Другой способ обойти это - добавить это в
package.json
раздел скриптов модуля.то, что это сделает, это установит все пакеты, необходимые модулю, и вы не получите эту ошибку.
источник
происходит со старой версией узла. используйте последнюю версию узла следующим образом:
$ nvm use 8.0
$ rm -rf node_modules
$ npm install
$ npm i somemodule
редактировать: также убедитесь, что вы
save
.например:
npm install yourmoduleName --save
источник
Я получал эту ошибку, когда я установил чистую среду Node dev на Windows.
Чтобы это исправить, я вошел в свой новый каталог проекта (с которым я только что работал
yo angular
) и набрал две команды:npm install -g grunt --save-dev
Это установит локальные зависимости для вашего проекта. Следующий:
npm install
Это обеспечит установку всех ваших (новых) зависимостей проекта.
Тада!
источник
Стоит упомянуть, чтобы убедиться, что ваши зависимости должны быть
dependencies
частью вашейpackage.json
(в отличие отdevDependencies
).Моя проблема была в основном такой же, как OP:
repo1
) через"module-name": "git+ssh://git@myserver:user/my-repo-name.git"
другое репо (назовем этоrepo2
),repo2
'snode_modules
, не было ни одной зависимости от пакетаrepo1
.repo1
перечисляла эту зависимостьdevDependencies
вместоdependencies
repo1
-хpackage.json
отdevDependencies
доdependencies
repo2
, я удалил свою,node_modules
иpackage-lock.json
сделалnpm install
, вуаля! ... зависимость была там!источник
У меня такая же проблема. Но на одной машине у одного проекта был хороший package.json, где все мои зависимости успешно установлены. И в другом проекте мои зависимости package.json не были установлены, что бы я ни делал. Я просто скопировал package.json и вставил в этот другой проект. И это сработало! Разница, которую я обнаружил, заключалась только в пустой строке в начале файла. Не знаю, или это влияет на что-нибудь, может быть, какая-то другая проблема. Но проблема была только в файле package.json.
источник
Я думаю, что я также столкнулся с этой проблемой, и лучшее решение, которое я нашел, было посмотреть на мою консоль и выяснить ошибку, которая была выдана. Итак, я внимательно прочитал его и обнаружил, что проблема заключалась в том, что я не указал свой репозиторий, описание и действительное имя в своем
package.json
. Я добавил эти фрагменты информации, и все было хорошо.источник