1.0.3 • Published 9 months ago

m-nover v1.0.3

Weekly downloads
-
License
ISC
Repository
-
Last release
9 months ago

前置:你可能并不需要这个包

如果你仅仅想要控制执行 npm scripts 的 node 版本, 可以在 package.json config 中添加 engine-strict: true 实现。

m-nover

一个简单的用于验证 node 版本 和 包管理器(npm、yarn)是否符合期望的命令工具

Features

  • 执行 npm scripts 前验证 node 版本 和 包管理器(npm、yarn)是否符合期望
  • 期望的 node 版本定义遵循 semantic version 规范

使用场景

  • 如果你同时需要维护多个项目,项目运行要求的 node 版本 和 包管理器存在差异时,推荐使用。

安装

npm

npm install -D m-nover

yarn

yarn add -D m-nover

pnpm (pnpm 本身支持该能力,无需使用)

pnpm install -D m-nover

设置目标 node 版本

m-nover 获取目标 node 版本的来源有两个:package.json 中的 engines 和 脚本参数(arguments)。

其中 脚本参数 的优先级要高于 engines
例如:

  "scripts": {
    "prestart": "m-nover -t ^18"
  }
  
 or

  "engines": { "node": "^16" }

目标 node 版本 会使用 18 作为实际的 node 版本。如果没有脚本参数,会默认使用 engines 的设置作为目标版本

使用方式

m-nover 目前只提供了 bin 文件,因此可以在 package.json 中的 npm scripts 脚本中使用。

  1. 通过 && 组合要执行的命令

      "scripts": {
        "start": "m-nover && other command",
        "build": "m-nover && other command"
      }

    当执行 npm run start 或者 npm run build 时,m-nover 会首先校验当前执行命令使用的 node 版本和项目实际需要的版本是否一致。
    如果不一致,会提示错误信息并阻止后续命令执行。
    如果一致,则会继续执行后续的命令。

  2. 使用 Pre & Post Scripts

        "scripts": {
          "prestart": "m-nover",
          "start": "other command",
          "prebuild": "m-nover",
          "build": "other command"
        }

    执行效果和上面的方式是一致的,比较好的一点是不用改动原有的命令。关于 Pre & Post Scripts 的使用方式,可以参考:npm scripts

参数说明

  • -t(不推荐): 设置 node 目标版本, 后跟项目运行实际需要的 node 版本。使用方式为 -t node-version, 比如: -t 18, -t ^18, -t ~18
  • target(推荐): -t, 使用方式为 target=node-version, 比如: target=18, target=^18, target=~18
  • en-pm: 设置是否启用包管理器验证,默认是开启的,如果想关闭,可以设置en-pm=false
  • enable-pm-verify: en-pm
1.0.3

9 months ago

1.0.2

9 months ago

1.0.1

10 months ago

1.0.0

10 months ago