我从另一个项目中复制了package.json,现在想要将所有依赖项都添加到它们的最新版本,因为这是一个新项目,如果它破坏了我不介意修复它.
最简单的方法是什么?
我现在知道的最好的方法是运行npm info express version
然后为每个人手动更新package.json.肯定有更好的办法.
{
"name": "myproject",
"description": "my node project",
"version": "1.0.0",
"engines": {
"node": "0.8.4",
"npm": "1.1.65"
},
"private": true,
"dependencies": {
"express": "~3.0.3", // how do I get these bumped to latest?
"mongodb": "~1.2.5",
"underscore": "~1.4.2",
"rjs": "~2.9.0",
"jade": "~0.27.2",
"async": "~0.1.22"
}
}
Run Code Online (Sandbox Code Playgroud)
我现在是npm-check-updates的合作者,这是解决这个问题的一个很好的解决方案.
刚刚遇到这个错误:
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR!
npm ERR! While resolving: nexttwin@0.1.0
npm ERR! Found: react@17.0.1
npm ERR! node_modules/react
npm ERR! react@"17.0.1" from the root project
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer react@"^16.8.0" from react-hook-mousetrap@2.0.4
npm ERR! node_modules/react-hook-mousetrap
npm ERR! react-hook-mousetrap@"*" from the root project
npm ERR!
Run Code Online (Sandbox Code Playgroud)
我尝试安装的模块似乎与我安装的模块具有不同的对等依赖项。似乎 npm 在这方面改变了它的行为,现在让安装失败。
我现在能做些什么来解决这个问题?我不想为此降级我的 React 版本。
我知道有一个标志被调用,--legacy-peer-deps
但我不确定这到底是做什么的,是否建议使用它/潜在的缺点是什么?我认为 npm 确实让安装失败是有原因的。
这很奇怪,因为我yarn
直到最近才用完,一切都很好。
这是我的一部分package.json
:
{
...
"devDependencies": {
"gulp": "~3.8",
...
},
...
}
Run Code Online (Sandbox Code Playgroud)
我正在运行以下命令:
gulp --version
CLI version 3.8.7
Local version 3.8.6
npm update
gulp --version
CLI version 3.8.7
Local version 3.8.6
rm -Rf ./node_modules/
npm install
gulp --version
CLI version 3.8.7
Local version 3.8.7
Run Code Online (Sandbox Code Playgroud)
该npm update
命令无效.
只有在我手动删除node_modules
目录并运行npm install
开发包之后才会更新.这是什么原因?是否有可能在没有这样麻烦的情况下实际更新开发包?