npm 包 engine-check 使用教程

阅读时长 4 分钟读完

简介

npm 是前端开发中十分常用的包管理工具,但是在下载的时候往往会出现版本兼容性的问题。 npm 提供了 engine 属性用于向你的用户,提供你的软件(包)支持的 Node.js 版本范围。而 engine-check 则是检查包的引擎属性与当前环境的兼容性,并发出警告信息。

安装

使用

引入

检查包的引擎属性与当前环境的兼容性

深度解析

engine-check 核心原理

engine-check 指定从哪一级开始搜索 package.json,它在读取 package.json 的时候,会先解析 engines 字段,然后匹配当前环境 Node.js 版本,判断是否符合条件。

-- -------------------- ---- -------
-- -----------

----- ------- - -----------------------------------------
----- ------- - ----------------

-- ------
----------------------------------- -- -
  -- ----- --- ------- -
    ----------------- - --------------
  - ---- -
    ------------------ - --------------
  -
---

-- ---- ------- --
----- -------------- - ----------------
----- --------- - --------------------------------- -------------------

semver.intersectssemver 模块的核心函数,用于比较版本号是否相交。

-- -------------------- ---- -------
-- --------------------------------------

-------- --------- -------- ------- -------- -
  ---

  -- -- ------- --- ----- -
  -------- -------- --------- ------ -
    --- -------
    --- -
      ------ - --- ------------ -----------------------
    - ----- ---- -
      ---------- -- ---- - ----- - - -- - - --------- -- -----------------------
      ----- ---
    -
    ------ -------
  -

  --- ---- ------- -- ----- -
    -- ------------------ -------- -
      -- --------------------------- -
        -- --------
        -- ----------------------- -
          ---------------------------- - -----
        -
      -

      -- -----
      ------------- - -----
      -- ----------------------------- -
        -- -------
        ----------------- - -----
      -
    -
  -

  ------ -----
-

engine-check 细节处理

  • engine-check 并不会强制要求包的 engine 字段。
  • 当检查未通过时会抛出异常 Engine requirements not met
  • engine-check 会根据环境变量 FORCE_ENGINE_CHECK ,决定是否强制进行兼容性检查(默认为 false)。

总结

engine-check 工具很好的解决了包版本兼容性问题。开发者可以使用此工具,规范化自己发布的 npm 包,提高自己的开发效率和用户体验。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066e26a563576b7b1ecf47

纠错
反馈