Npm install packagename --save-dev не обновляет package.json
Существуют ли простые или тонкие причины, по которым package.json
не будет обновляться после запуска --save-dev? Это моя команда:
npm install modulename --save-dev
Выполнить из корня проекта. Команда успешно завершена, новый модуль отображается в каталоге node_modules, как и ожидалось. Помощь была бы оценена. Я использую npm v 1.4.28
Весь мой текущий package.json
:
{
"name": "FooWeb",
"version": "1.0.0",
"description": "Foo Web",
"devDependencies": {
"gulp": "3.8.11",
"gulp-jshint": "1.9.2",
"gulp-concat": "2.5.2",
"gulp-sass": "1.3.3",
"gulp-sourcemaps": "1.4.0",
"gulp-watch": "4.1.1"
}
}
Я получаю предупреждения об установке пакета, в котором у меня нет поля репозитория или README, но я думаю, что это не связано.
Ответы
Ответ 1
У меня тоже была эта проблема, и это сводило меня с ума.
Что, наконец, было исправлено, он работал npm init
. Это добавило кучу вещей в мой пакет .json, но потом --save-dev
работал так, как ожидалось. Даже после того, как я удалил все новые вещи, добавленные npm init
, --save-dev
все еще работал.
Ответ 2
У меня был флаг -g, когда я его удалил, он работал как ожидалось...
Ответ 3
перейти к файлу JSON → свойствам правого клика → удалить флаг "только для чтения".
Ответ 4
Я пытался установить gruntjs, используя "npm install --save grunt-sass", но package.json не будет обновлять
Я сделал все, что упоминалось выше, но не повезло. Но забавно, если я попробую добавить пакет, скажите "подчеркивание (npm install --save underscore)", сын обновляется. Я не уверен, что это проблема с nam как таковой. Я установил его как суперпользователя.
Ответ 5
В моем package.json была синтаксическая ошибка, которая вызывала это для меня!
Ответ 6
Ответ Mustafah ELBanna помог мне, но я хочу расширить свой ответ для других новичков, подобных мне. Пожалуйста, поправьте меня, если я пропущу что-то важное.
Если вы удалите флаг -g
, модуль не будет установлен глобально для вашего компьютера, но только локально в вашем проекте. Если вы также хотите, чтобы он был установлен глобально, выполните ту же команду снова, но теперь с -g
вместо --save-dev
, как это:
npm install --save-dev [packagename]
npm install -g [packagename]
Мне кажется, что что-то может пойти не так, когда вы вызываете -g
и --save
в одну строку.
Но опять же, я новичок в этом, и я ценю любого, кто хочет улучшить/исправить мой ответ.
Ответ 7
Для меня проблема в том, что я скопировал команду из блокнота ++, возможно, там были специальные символы или это были пробелы, и это не обновляло мой package.json.
например. не работал; npm install --save debug pug jwt-simple method-override mongoose
Убедитесь, что при установке вы очищаете командную строку, например. любые пробелы между каждым модулем, потому что там могут быть специальные символы, в зависимости от вашей кодировки.
Когда я исправил это, он сработал.
npm install --save debug pug jwt-simple method-override mongoose
Кроме того, убедитесь, что package.json не открывается в редакторе при запуске команды, потому что не все редакторы обрабатывают это изящно.
Ответ 8
После использования экспресс-генератора я установил некоторые пакеты с -s, и ни один из них не добавил в package.json.
Затем я удалил package.json и запустил npm init, и все они добавлены без необходимости установки снова
Ответ 9
У меня есть файл .npmrc
, в котором используется npm
api встроенная встроенная система для извлечения пакетов. Моя проблема заключалась в том, что я не был связан с моей компанией VPN
.
Ответ 10
Я пробовал все команды, указанные в ответах выше, но добился успеха при установке пакета npm-upgrade
.
npm i -g npm-upgrade
, тогда
npm-upgrade
Ответ 11
Единственный способ, которым я смог это решить, заключался в использовании npm install --save-dev moduleName
вместо npm install moduleName --save-dev
. Использование npm install moduleName --save
отлично работает для меня. Только когда я использую --save-dev
, я должен поставить его перед moduleName
. Надеюсь, это поможет любому.
Ответ 12
Сначала вы можете проверить свою конфигурацию (npm config ls
или файл ~/.npmrc
).
У меня было link=true
.
В версии 5.5.1 этот параметр, кажется, игнорируется, когда --save активен.
Учитывая, что -save-dev supersedes --save, режим ссылки снова активен.
Итак, для меня все происходит так, как будто --save
переопределил --link
, который, в свою очередь, переопределил --save-dev
.