nodejs学习: ncu

一个可以升级插件升级后会自动修改package.json里的版本号工具
更新于: 2022-11-16 14:36:57

常用的更新包工具

在我们的日常工作中,我们需要对 package.json 进行更新,当然 ,我们可以手动进行。

但有 ncu 这个工具,会更方便。

npm update,只能按照package.json中标注的版本号进行更新,升级后不会修改package.json中的版本号,需要自己手动修改,比较麻烦。
npm-check-updates 升级插件升级后会自动修改package.json里的版本号,简单方便。

安装

npm install -g npm-check-updates

常见用法

  • 更新所有
  • scope 更新
  • 在项目中带配置文件的更新
# 一次性更新所有的版本号
ncu -u
# 添加 fitler
ncu "/^@jswork/"

添加配置文件 .ncurc.json

{
  "upgrade": true,
  "filter": "/^@jswork/"
}

其它配置选项

--configFilePath         rc config file path (default: directory of `packageFile` or ./ otherwise)
--configFileName         rc config file name (default: .ncurc.{json,yml,js})                             
--cwd                    Used as current working directory for `spawn` in npm listing
--dep                    check only a specific section(s) of dependencies:
                         prod|dev|peer|optional|bundle (comma-delimited)
--engines-node           include only packages that satisfy engines.node as
                         specified in the package file
-e, --error-level        set the error-level. 1: exits with error code 0 if no
                         errors occur. 2: exits with error code 0 if no
                         packages need updating (useful for continuous
                         integration)
-f, --filter             include only package names matching the given string,
                         comma-or-space-delimited list, or /regex/
-g, --global             check global packages instead of in the current project
-i, --interactive        Enable interactive prompts for each dependency;
                         Implies -u unless one of the json options are set
-j, --jsonAll            output new package file instead of human-readable
                         message
--jsonDeps               Will return output like `jsonAll` but only lists
                         `dependencies`, `devDependencies`, and
                         `optionalDependencies` of the new package data.
--jsonUpgraded           output upgraded dependencies in json
-l, --loglevel           what level of logs to report: silent, error, warn,
                         info, verbose, silly (default: warn)
-m, --minimal            do not upgrade to newer versions that are already
                         satisfied by the existing version range (v2 behavior).
-n, --newest             find the newest published versions available instead
                         of the latest stable versions
-p, --packageManager     npm or bower (default: npm)
--packageData            include stringified package file (use stdin instead)
--packageFile            package file location (default: ./package.json)
--pre                    include -alpha, -beta, -rc. Default: 0. Default
                         with --newest and --greatest: 1.
--prefix                 Used as current working directory in bower and npm
-r, --registry           specify third-party NPM registry
--removeRange            remove version ranges from the final package version
-s, --silent             don't output anything (--loglevel silent)
--semverLevel            find the highest version within "major" or "minor"
-t, --greatest           find the highest versions available instead of the
                         latest stable versions
--timeout                a global timeout in ms
-u, --upgrade            overwrite package file
-v, --version            get version
-V                       get version
-x, --reject             exclude packages matching the given string, comma-
                         delimited list, or regex

当模块使用

const ncu = require('npm-check-updates');
 
ncu.run({
    // Any command-line option can be specified here.
    // These are set by default:
    jsonUpgraded: true,
    packageManager: 'npm',
    silent: true
}).then((upgraded) => {
    console.log('dependencies to upgrade:', upgraded);
});

cheatsheet

功能命令
只查看,不升级
ncu
查看,升级
ncu -u
查看特定组件包
ncu --filter /@jswork/

参考