npm 包 dm-h5-dll 使用教程

阅读时长 5 分钟读完

背景

前端工程化在现在越来越普遍,为了在前端项目中提高性能,实现组件化与模块化,在名词轮回过程中诞生了许多工具。Webpack 是其中一个最流行的前端打包工具。在实际使用中,webpack 可以通过使用 DllPlugin 这个插件提高构建速度,减少输出文件体积,加快构建编译速率,提高前端性能体验。

dm-h5-dll 模块使得 Package 文件可以以工具库的形式运行,简化了 webpack.dll.js 配置文件的设置,并且可以在任何一个 webpack 配置文件中随意使用或加载 DLL 缓存。它使用到了 webpack.DllReferencePlugin,通过程序化的方式,添加dll程序生成的映射关系到 webpack。

用法

安装

在 package.json 中安装 dm-h5-dll:

配置

  1. 创建一个名为 vendor_config.js 的配置文件,输入以下配置进行自定义:
-- -------------------- ---- -------
-------------- - -
  ----- -
    -- ----------------- ------------ ------------ ------ - ------
    -- ---- ---------------- ----------------------------
    - ---- --------- ---- -----
    - ---- -------- ---- ------- --
    - ---- -------- ---- ---------- --
  --
  ----------- -------------- -- ------ -----
  ----- --------- -- ------ --------- --------- ---- ---- ----
--
  1. webpack.config.js 配置文件中使用 dm-h5-dll
-- -------------------- ---- -------
----- ----- - ---------------------
----- ------------ - ------------------------------

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

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

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

使用

引入Dll缓存

注意事项

  1. 在使用时,需要在同构项目中找到依赖库的名称,并与 dllConfig.js 中声明的名称一致,否则会抛出 Miss dll reference plugin of vendor 错误。

  2. vendor_config.js 中的 deps 配置为需要当做缓存的包,可以在此任意指定。但是需要注意,该库的 name 可能会对多个 webpack.DllPlugin 实例之间产生重复。注意包含相同名称的运行时库的冲突。在这种情况下,可以将相同的库分布到不同的name缓存文件中并在manifest文件中指南。

  3. 在某些场景下,可能需要在不同的模块之间共享缓存。为此,DllPlugin 暴露了 context 选项来解决这个问题。将 context 提供给 DllPlugin 后,它将被用作生成 manifest 文件的路径,而不管 DllPlugin 在那个模块中执行。

  4. 缓存顺序问题

当配置了多个 DllPlugin 进 http://www.webpackjs.com/plugins/dll-plugin/configuration/options/#name行缓存时,如果其中一个库更改了版本或不再使用,并且重新生成了manifest 文件,并且未重新构建主应用程序/客户端,此时正在运行的应用程序将不能自动具有更新。

结语

使用 dm-h5-dll 可以大大提高 webpack 的构建速度,如果前端工程化中使用到了 webpack.DllPlugin 插件,不妨可以尝试使用该 npm 包来更加方便快捷的使用 webpack.DllPlugin 插件。

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

纠错
反馈