节点更新特定包
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) 漏洞版本:以上是关于节点更新特定包的主要内容,如果未能解决你的问题,请参考以下文章
使用节点js的地图中列表中特定索引处的Dynamodb sdk更新条目