【发布时间】:2020-01-22 15:10:38
【问题描述】:
所以我在我的工作空间内从事一些项目,我注意到我的许多依赖项大约有 3 年的历史,包括 React 本身。我担心的是,如果我运行npm install 或npm update,事情可能会中断,我可能会遇到很多问题。在我的场景中,我想知道我是否最好做一个npm install、npm update,或者就这样保持原样? (我敢肯定没有人会推荐)。
这是我们的 package.json 文件
{
"name": "my-app",
"version": "0.0.2",
"main": "index.js",
"license": "MIT",
"scripts": {
"start": "node src/entry",
"start-dev": "npm-run-all --parallel build babel-node",
"serve": "live-server public/",
"build-linux": "clear && webpack && clear && yarn build-server && clear && yarn start",
"build-windows": "cls && webpack && cls && yarn build-server && cls && yarn start",
"build-server": "babel src/server -d src",
"dev-server": "webpack-dev-server",
"babel-node": "nodemon --exec babel-node src/server.js"
},
"dependencies": {
"aws-sdk": "^2.358.0",
"axios": "^0.19.0",
"babel-cli": "^6.26.0",
"babel-core": "^6.26.3",
"babel-loader": "7.1.1",
"babel-plugin-transform-class-properties": "6.24.1",
"babel-polyfill": "^6.26.0",
"babel-preset-env": "^1.7.0",
"babel-preset-react": "6.24.1",
"babel-preset-stage-0": "^6.24.1",
"bcryptjs": "^2.4.3",
"body-parser": "^1.18.2",
"core-js": "^2.5.3",
"css-loader": "0.28.4",
"express": "latest",
"file-loader": "^1.1.5",
"fs": "0.0.1-security",
"google-maps-react": "^1.1.4",
"html2canvas": "^1.0.0-rc.3",
"image-webpack-loader": "^4.6.0",
"immutability-helper": "^2.4.0",
"jquery": "^3.4.1",
"jsonwebtoken": "^8.1.0",
"jspdf": "^1.5.3",
"lodash": "^4.17.14",
"moment": "^2.22.2",
"node-sass": "^4.11.0",
"nodemailer": "^4.7.0",
"normalize.css": "7.0.0",
"npm": "^6.10.1",
"promise-mysql": "^3.1.0",
"prop-types": "^15.6.0",
"react": "^16.0.0",
"react-csv": "^1.0.14",
"react-dom": "^16.0.0",
"react-router-dom": "4.2.2",
"react-scripts": "^2.1.3",
"sass-loader": "6.0.6",
"socket.io": "^2.0.3",
"style-loader": "0.18.2",
"table2csv": "^1.1.1",
"twilio": "^3.24.0",
"validator": "8.0.0",
"webpack": "^3.12.0",
"webpack-dev-middleware": "^3.5.0",
"webpack-dev-server": "^3.1.14"
},
"devDependencies": {
"concurrently": "^3.5.0",
"npm-run-all": "^4.1.1"
}
}
我已经尝试将我的 react 和 react-dom 版本更新到最新版本,但我开始收到有关 componentWillMount 和 componentWillReceiveProps 已过时的警告。我尝试更新 react-router-dom 以消除其中一些警告,考虑到它们指向 Link, Route, Switch 之类的东西,但这并没有抑制它们。
如果有人知道我解决此问题的最佳方法是什么,以及npm install 与npm update 对我的系统有何影响,那就太好了。我知道他们每个人都能做什么,但我只是想保持谨慎,想知道在我的情况下哪一个会更好。谢谢。
【问题讨论】:
-
你没有使用包锁吗?您如何保证其他人收到您的代码并运行
npm install将获得与您相同并由您测试的 node_modules? -
@jarmod 老实说可能不是。请记住,我在一家公司工作,该代码在我之前就在这里,所以我正在努力解决他们一直以来应该做的事情。
-
开始永远不会太晚 ;-)
^1.1.4这样的版本面临的挑战是,将来有人克隆您的代码并运行npm install的机会几乎为零您使用和测试的代码版本。因此,他们可能会成为引入问题的次要版本的受害者。这不应该发生,但确实发生了。所以他们的npm install类似于你的npm update——你们都处于未知领域。如果包装供应商犯了零错误,那么你就可以了。您甚至可能通过获得错误修复和安全补丁来改进事情。 -
这能回答你的问题吗? How to get node packages up-to-date?