npm 包 @oasisdigital/rollup-plugin-node-resolve 使用教程

阅读时长 4 分钟读完

简介

@oasisdigital/rollup-plugin-node-resolve 是 Rollup 的一个插件,用于解析模块依赖关系。它通过 node-resolvenode_modules 目录中查找模块,与 rollup-plugin-commonjs 一起使用可以让 Rollup 打包更多的模块。

安装

使用 npm 进行安装:

使用

在配置文件中引入该插件并添加到 plugins 数组中即可使用。示例:

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

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

以上示例中,我们设置了 browser: true 来指定插件使用浏览器版本的 Node.js 核心模块,而不是原始 Node.js 版本。另外,我们设置了 preferBuiltins: false 来禁用自动使用核心模块而不解析。

参数说明

使用 resolve() 初始化插件时可以传入一些参数来进行配置。

browser

  • Type: boolean
  • Default: false

如果为 true,则使用浏览器版本的 Node.js 核心模块,而不是原始 Node.js 版本。

mainFields

  • Type: Array
  • Default: ['module', 'jsnext:main', 'main']

定义了按优先级解析的字段列表。按以下顺序查找入口文件:

  1. module
  2. jsnext:main
  3. main

preferBuiltins

  • Type: boolean
  • Default: true

如果为 true,则自动使用核心模块而不解析。如果为 false,则不自动使用核心模块。

示例代码

假设我们有以下依赖关系:

我们可以使用 @oasisdigital/rollup-plugin-node-resolve 插件解析这些模块:

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

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

在本例中,我们开启了 browser 配置选项,默认情况下,插件使用 node 选项,这意味着插件将使用 Node.js 内置的核心模块解析依赖项。

这里我们还配置了 preferBuiltinsfalse,这意味着插件不会使用 Node.js 内置的核心模块来解析依赖项。由于我们已经开启了 browser 配置选项,任何尝试使用 Node.js 内置的核心模块的语句都将自动转换为使用浏览器支持的版本。

这里我们使用一个简单的示例代码作为入口:

使用命令 rollup -c 进行打包后,我们可以在 dist/bundle.js 中看到打包后的代码:

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

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

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

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

我们可以看到插件使用了浏览器版本的 momentlodash,而且还转换了核心模块的语句。打包后的代码可以在浏览器中直接使用。

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

纠错
反馈