Избегать нестабильных выпусков мангуста в npm/package.json
Как я могу избежать установки неустойчивых выпусков мангуста с npm?
После запуска npm update
я получаю следующее предупреждение в своем node приложении:
# !!! MONGOOSE WARNING !!!
#
# This is an UNSTABLE release of Mongoose.
# Unstable releases are available for preview/testing only.
# DO NOT run this in production.
В моем файле package.json у меня есть следующая запись:
"mongoose": "^3.8.8"
Ответы
Ответ 1
Mongoose не соблюдает стандартные методы npm, и поэтому их нестабильные сборки становятся признанными стабильными на npm. В основном они выпустили 3.9 как неустойчивую версию, вот почему это предупреждение.
Могу посоветовать, что вы больше не доверяете им следовать этим соглашениям и просто блокируете версию в своем пакете. json:
"mongoose": "3.8"
Ответ 2
Отметьте этот ответ: Как обновить каждую зависимость в package.json до последней версии?
Совет состоит в том, что если вы укажете "*"
в качестве версии, вы всегда будете обновляться до последней стабильной версии.
В вашем случае я бы рекомендовал сначала удалить пакет mongoose, а затем переустановить mongoose.
Код:
npm uninstall mongoose
(change "mongoose":"^3.8.8" to "mongoose":"3.8")
npm install
Ответ 3
Вероятно, вы никогда не устанавливали 3.8.8 (что должно быть стабильным), но версия 3.9.x.
Собственно, с помощью ^ вы также установите 3.9.x, когда в пакете package.json будет ^ 3.8.8.
В вашем случае вы можете либо исправить 3.8.8 (или 3.8.18, которые стабильны на сегодняшний день, как описано в другом ответе здесь, удалив ^), либо используйте символ th ~, который будет соответствовать только новым версии на самой нижней части версии.
Итак, следующее будет соответствовать (когда x будет последним доступным):
* => x.x
^3.8.8 => 3.x
~3.8.8 => 3.8.x
3.8.8 => 3.8.8
Так как 3.9 считается неустойчивым, но ^ переходит в 3.9, то есть проблема.
Хорошее объяснение по версии также можно найти здесь: fooobar.com/info/631/...
и используйте
npm view mongoose versions
чтобы узнать, какие версии доступны, например. г. что является последним в 3.8, когда 4 отсутствует.
С ~ 3.8 он всегда будет оставаться последним в версии 3.8 (при обновлении), но вам нужно будет обновить его вручную, когда 4.0 не будет.
Также: вы можете напрямую отредактировать файл package.json, а затем запустите
npm update
без необходимости удаления/переустановки.