节点更新特定包

Posted

技术标签:

【中文标题】节点更新特定包【英文标题】:Node update a specific package 【发布时间】:2017-08-24 23:15:09 【问题描述】:

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

├─┬ browser-sync@1.9.2
│ ├── browser-sync-client@1.0.2

【问题讨论】:

npm install browser-sync@latest 也许。应该用最新的覆盖它(大概修复任何损坏?) 【参考方案1】:

大多数情况下,您只需 npm update(或 pnpm update 或 yarn 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.x.x),它可能会有重大更改,您需要更新您的应用以适应这些更改。您可以通过以下方式安装/保存最新的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: '*'browser-sync: 'x' - 但我不建议这样做。 @RyanWheale,请注意,由于不需要 npm@5.0.0 --save-dev,因为它会自动保存到 package.json (docs.npmjs.com/cli/update) @lakesare 实际上从 npm@5.0.0 开始默认是 --save,而不是 --save-dev。如果要创建仅开发依赖项,您仍然需要指定 --save-dev。 @JoshuaHarris - 使用 npm@5,npm update 将更新依赖项和 devDependencies 并将新版本号保存到 package.json 中的适当位置。【参考方案2】:

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


然后npm i packageName@versionNumber 安装特定版本:示例 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) 漏洞版本:

以上是关于节点更新特定包的主要内容,如果未能解决你的问题,请参考以下文章

NuGet自动更新特定包

Powershell:如何更新XML节点属性值的特定字符

使用节点js的地图中列表中特定索引处的Dynamodb sdk更新条目

为啥在运行 npm update 时不是所有节点包都更新到最新版本?

Composer 使用 OR 运算符更新包到特定版本

如何查找由特定 plsql 方法更新的所有表