Я хочу обновить все пакеты npm в приложении loopback узла - PullRequest
1 голос
/ 27 мая 2019

У меня есть приложение узла, с установленными всеми пакетами узлов, совместимыми с версией узла 0.10.25,

Но теперь мне нужно обновить все пакеты, совместимые с текущей версией узла, то есть версией узла 10.15.3

Я пробовал два способа до сих пор, т.е.

1.) Npm upgrade - сохранить

2.) Жестко закодированные пакеты обновляют версию в файле package.json, а затем запускают.

npm install --save

Но я закончил с ошибкой вроде

Error: Cannot resolve path "loopback/server/middleware/compress"

После вышеуказанной ошибки я попытался

npm install compress --save

после этого также та же ошибка.

Мой предыдущий файл package.json выглядит как

...
  "dependencies": {
    "compression": "^1.0.3",
    "ejs": "^1.0.0",
    "email-templates": "^1.2.1",
    "errorhandler": "^1.1.1",
    "loopback": "^2.8.0",
    "loopback-boot": "^2.4.0",
    "loopback-component-storage": "^1.5.0",
    "loopback-connector-mysql": "^2.1.1",
    "loopback-datasource-juggler": "^2.7.0",
    "mysql": "^2.17.1",
    "nodemailer": "^1.3.4",
    "nodemailer-smtp-transport": "^1.0.3",
    "q": "^1.4.1",
    "request": "^2.88.0",
    "serve-favicon": "^2.0.1",
    "strongloop": "^6.0.3"
  },
  "optionalDependencies": {
    "loopback-explorer": "^1.1.0"
  },
  "devDependencies": {
    "jshint": "^2.5.6"
  },
... 

Мой текущий файл package.json выглядит следующим образом (Вручную найдите обновленную версию всех пакетов с https://www.npmjs.com/package/)

 ...
  "dependencies": {
    "compression": "^1.7.4",
    "ejs": "^2.6.1",
    "email-templates": "^5.0.4",
    "errorhandler": "^1.5.1",
    "loopback": "^3.25.1",
    "loopback-boot": "^2.28.0",
    "loopback-component-storage": "^3.6.0",
    "loopback-connector-mysql": "^5.3.1",
    "loopback-datasource-juggler": "^4.6.2",
    "mysql": "^2.17.1",
    "nodemailer": "^6.1.0",
    "nodemailer-smtp-transport": "^2.7.4",
    "nodemon": "^1.19.1",
    "q": "^1.5.1",
    "request": "^2.88.0",
    "serve-favicon": "^2.5.0",
    "strongloop": "^6.0.3"
  },
  "optionalDependencies": {
    "loopback-component-explorer": "^6.4.0"
  },
  "devDependencies": {
    "jshint": "^2.10.2"
  },
  "repository": {
    "type": "",
    "url": ""
  },
  "description": "orders"
}
...

Мне нужно расширить приложение, соответствующее бизнес-логике. Для этого мне нужно установить очень много новых пакетов, но не доступных / не совместимых с моими текущими пакетами,

Любая рекомендация или совет для этого были бы очень полезны для меня.

Заранее спасибо

1 Ответ

1 голос
/ 31 мая 2019

Поскольку вы обновляете множество зависимостей до более старшей версии на более высоком уровне, вам необходимо иметь дело с критическими изменениями, внесенными в эти версии.

LoopBack предоставляет руководство по миграции для разработчиков, обновляющихся с 2.x до 3.x, см. https://loopback.io/doc/en/lb3/Migrating-to-3.0.html.

Error: Cannot resolve path "loopback/server/middleware/compress"

LoopBack 3.x обновил Express с 2.x до 3.x (IIRC), и в результате популярное промежуточное программное обеспечение больше не связано - приложения должны устанавливать и загружать их явно.

Я вижу, что в ваших зависимостях уже указан compression, поэтому теперь вам нужно изменить код, вызывающий require('loopback/server/middleware/compress'), чтобы вместо него вызывать require(compression'). Проверьте также свой файл server/middleware.json, приложения LoopBack обычно настраивают промежуточное ПО через этот файл конфигурации.

"loopback-datasource-juggler": "^4.6.2",

В LoopBack 3.0 мы переместили loopback-datasource-juggler с peerDependencies на обычные dependencies, приложения LoopBack больше не зависят напрямую от juggler. Пожалуйста, удалите эту запись из вашего package.json.

См. https://loopback.io/doc/en/lb3/Migrating-to-3.0.html#edit-packagejson и https://loopback.io/doc/en/lb3/3.0-Release-Notes.html#loopback-datasource-juggler-is-now-a-regular-dependency-of-loopback

...