npm 包 menio 使用教程

阅读时长 10 分钟读完

介绍

menio 是一个基于 Node.js 的前端资源管理器,可以用来管理 JS、CSS、图片、字体等资源。它提供了一种简单的方式来为多个页面加载公共资源,并且支持自动创建版本号,可以避免浏览器缓存导致的问题。

安装 menio

可以通过 npm 安装 menio:

menio 的使用

配置

在你的项目中创建一个 menio.config.js 文件,来进行 menio 的配置。

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

可以看到,menio 的配置非常清晰易懂,也非常灵活。

  • input:输入文件夹,也就是源代码所在的目录。
  • output:输出文件夹,也就是构建后文件所在的目录。
  • versionLength:版本号长度,如果不传这个参数,menio 将根据哈希值自动生成一个版本号。
  • staticPath:静态资源路径,可以设置为 CDN 的地址。
  • gzip:是否开启 gzip 压缩。
  • useCDN:是否使用 CDN。
  • cdnPath:CDN 路径,如果设置了该参数,则 menio 会将引用的静态资源路径转换为对应的 CDN 路径。
  • removeComments:是否删除构建时的注释。
  • useHash:是否使用文件内容的哈希值作为文件名。

使用 API

menio 提供了一些非常实用的 API,可以在代码中方便的调用:

menio.getPageAsset(pageName)

根据页面名称获取需要加载的静态资源。

输出结果:

menio.getAssetUrl(fileName)

根据文件名获取静态资源的 URL。

输出结果:

menio.renderAssets(pageName)

渲染页面需要加载的静态资源标签,并返回一个对象。

输出结果:

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

使用示例

下面是使用 menio 构建一个简单的 Vue.js 单页应用的示例。

目录结构

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

menio.config.js

webpack.config.js

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

pages/home/App.vue

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

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

pages/home/main.js

pages/home/index.html

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

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

static/js/home.js

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

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

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

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

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

构建

在 package.json 中添加构建脚本:

然后运行:

总结

menio 的功能非常强大,使用起来也非常简单。它的 API 也非常实用,可以在构建后的代码中直接调用,避免了手动维护静态资源的繁琐。

如果您的项目中存在大量的静态资源且需要进行合理的管理,menio 绝对是一个不错的选择,它将极大地提升你的生产效率。

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

纠错
反馈