Tat*_*ova 3 javascript version npm package.json
我通过了一门关于 Node.js 和 Angular 的学习课程。那里的老师在package.json中使用了
很多星号而不是特定版本的库。
"dependencies": {
"bcrypt": "*",
"bcryptjs": "^2.4.3",
"body-parser": "*",
"cors": "*",
"express": "*",
"jsonwebtoken": "*",
"mongoose": "*",
"morgan": "^1.10.0",
"passport": "*",
"passport-jwt": "*"
},
"devDependencies": {
"nodemon": "^2.0.7"
}
Run Code Online (Sandbox Code Playgroud)
使用它们是好是坏?
通配符是个坏主意。它说无论如何都要加载最新版本。听起来是个好主意,这样您就不必不断更新。在他们对 api 进行重大更改之前,这一切都很棒。
如果他们从 v1.5 更新到 v2.0 并且更改了 API,则依赖 1.5 语法的代码将不再在 v2.0 中运行(如果它不向后兼容)。如果对多个包执行此操作,您的手上就会一片混乱。
有些人会允许次要版本为通配符,但大多数人将其锁定并手动升级,以便可以对其进行全面测试。
https://docs.npmjs.com/about-semantic-versioning