ChatGPT解决这个技术问题 Extra ChatGPT

节点更新特定包

我想更新我的浏览器同步而不更新我的所有节点包。我怎样才能做到这一点?我当前版本的 Browser-sync 没有 Browser-sync GUI :(

├─┬ browser-sync@1.9.2
│ ├── browser-sync-client@1.0.2
npm install browser-sync@latest 也许。应该用最新的覆盖它(大概修复任何损坏?)

R
Ryan Wheale

大多数情况下,您只需 npm update(或 pnpm updateyarn upgrade)一个模块即可获得最新的非破坏性更改(尊重 package.json 中指定的 semver)(< ——再读一遍最后一部分)。

npm update browser-sync
-------
pnpm update browser-sync
-------
yarn upgrade browser-sync

使用 [p]npm|yarn outdated 查看哪些模块有更新的版本 使用 [p]npm update|yarn upgrade (没有包名) 更新所有模块

主要版本升级:

在您的情况下,您似乎想要下一个主要版本 (v2.xx),它可能会有重大更改,您需要更新您的应用程序以适应这些更改。您可以通过执行以下操作安装/保存最新的 2.x.x

npm install browser-sync@2 --save-dev
-------
pnpm add browser-sync@2 --save-dev
-------
yarn add browser-sync@2 --dev

...或最新的 2.1.x 通过执行:

npm install browser-sync@2.1 --save-dev
-------
pnpm add browser-sync@2.1 --save-dev
-------
yarn add browser-sync@2.1 --dev

...或通过以下方式获得最新和最伟大的:

npm install browser-sync@latest --save-dev
-------
pnpm add browser-sync@latest --save-dev
-------
yarn add browser-sync@latest --dev

注意:最后一个与这样做没有什么不同: npm uninstall browser-sync --save-dev npm install browser-sync --save-dev ------- pnpm remove browser-sync --save-dev pnpm add browser-sync --save-dev ------- yarn remove browser-sync --dev yarn add browser-sync --dev --save-dev 部分很重要。这将卸载它,从 package.json 中删除值,然后重新安装最新版本并将新值保存到 package.json。


npm update browser-sync --save-dev 也可以更新到主要版本,并保存 package-lock.json(当然,如果它存在的话)。
@Wildhoney - 我非常不同意你的观点(大部分) - npm update 将安装最新的无论 semver。更新到下一个 major 版本的唯一方法是像我上面描述的那样明确地进行。如果您从未安装过软件包并且您尝试更新/保存它,那么它将安装最新版本,但这并不常见。还有一个很少使用的 semver 用于指定 latest major version - 它在你的 package.json 中看起来像这样:browser-sync: '*' OR browser-sync: 'x' - 但我不建议这样做。
@RyanWheale,请注意,由于不需要 npm@5.0.0 --save-dev,因为它会自动保存到 package.json (docs.npmjs.com/cli/update)
@JoshuaHarris - 使用 npm@5,npm update 将更新依赖项和 devDependencies 并将新版本号保存到 package.json 中的适当位置。
npm update 对我不起作用 npm install @latest -S 对我有用
Q
Qui-Gon Jinn

使用 npm outdated 查看所有软件包的当前最新版本。

然后 npm i packageName@versionNumber 安装特定版本:example npm i browser-sync@2.1.0

npm i packageName@latest 安装最新版本:示例 npm i browser-sync@latest


通过展示如何安装特定版本的依赖项而不提及主要/次要版本,这更清楚地回答了操作的问题。
谢谢@Tom,很高兴您发现这个答案很有用
可能值得注意的是,如果您确实使用此命令,您的包 json 可能会得到类似:“@packageName”:“^1.26.3”。如果您想要特定版本,请将 ^ 更改为 ~ 像这样 "@packageName":"~1.26.3"
低于依赖机器人警报,如何修复,尝试删除 package-lock.json 和 package.json 所有包都有插入符号^。 1) 在 package-lock.json 中发现 ansi-regex 漏洞,2) 在 package-lock.json 中发现 nth-check 漏洞,3) 漏洞版本:<= 0.0.7 修补版本:无修复 这会影响软件包 ansi 的所有版本-html。如果攻击者提供了恶意字符串,它将在很长一段时间内无法处理输入。
S
Stas Sorokin

新PM

将特定软件包更新到最新版本:

npm update browser-sync

按版本更新包:

npm view browser-sync versions(查看包版本)

npm install browser-sync@2

将所有软件包更新到最新版本:

npm outdated(这会检查注册表以查看当前是否有任何已安装的软件包过时)

npm update --save/--save-dev(在 package.json 中更新和保存依赖项)

对所有包运行安全审计:

npm audit(将项目中配置的依赖项的描述提交到默认注册表并要求报告已知漏洞)npm audit fix(修复漏洞)

将所有软件包更新到最新版本:

yarn upgrade

将特定软件包更新到最新版本:

yarn upgrade browser-sync

将特定包更新到特定版本:

yarn upgrade browser-sync@^2

即插即用

更新所有依赖项,遵守 package.json 中指定的范围:

pnpm uppnpm update 的别名)

更新所有依赖项,忽略 package.json 中指定的范围:

pnpm up --latest

将 browser-sync 更新到 v2 的最新版本:

pnpm up browser-sync@2

更新 @babel 范围内的所有依赖项:

pnpm up "@babel/*"


D
Dan

legacy-peer-deps 命令也很有帮助,尤其是在您处理一些依赖问题之类的时候。

示例:如果包是 ngx-multi-window 并且它的版本是 0.3.1

你会运行: npm install ngx-multi-window@0.3.2 --legacy-peer-deps