我有一个节点应用程序,安装了与节点版本0.10.25兼容的所有节点软件包,
但是现在我必须升级与当前节点版本兼容的所有软件包,即节点版本10.15.3
到目前为止,我已经尝试了两种方法
1.)npm升级--save
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"
}
...
我必须扩展符合业务逻辑的应用程序,为此,我需要安装很多新软件包,但不可用/与当前软件包不兼容,
这样做的任何参考或建议都会对我有很大帮助。
提前致谢
最佳答案
由于要将许多依赖项升级到较高的主要主版本,因此您需要处理这些版本中引入的重大更改。
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应用程序不再直接依赖于变戏法者。请从您的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
关于node.js - 我想升级 Node 环回应用程序中的所有npm软件包,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56323038/