Подтвердить что ты не робот

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, но я думаю, что это не связано.

4b9b3361

Ответ 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.