前言
在前端开发中,构建工具 webpack 已经成为了必选项。而使用 webpack 进行构建的时候,很多时候需要手动引用一些公共的库或者组件。但是手动引用过于繁琐,不利于维护。而 assembly-webpack-plugin 这个 npm 包能够很好的解决这个问题。
assembly-webpack-plugin 是一个能够根据指定的规则,自动将多个 js/css 文件合并成一个文件,并且在构建的时候自动引入这个文件的 webpack 插件。接下来我们将深入探讨该插件的使用方法。
安装
在使用之前,需要通过 npm 安装这个插件。可以使用如下的命令:
npm install assembly-webpack-plugin --save-dev
配置
在安装之后,我们需要在 webpack 配置文件中配置插件实例。这里插件实例的参数可以通过配置文件进行设置。以下为一个示例:
-- -------------------- ---- ------- ----- -------------- - ----------------------------------- -------------- - - -- ------- -------- - --- ---------------- ----------- -------------------- -------- --------- ------------------------------- ----------- --------- ------------- ---------- ----- -- - -
该配置项不包含 webpack 的其他配置项,仅显示了如何添加 AssemblyPlugin。
outputPath
:合并后文件输出的路径;fileName
:合并后文件名;dependency
:规定需要合并的包或文件组;sourceMap
:是否生成 SourceMap。
示例
有如下的结构:
-- -------------------- ---- ------- - ----------------- - ------ -- ----- - -------- - -------- - ------- -- ----- - -------- - ------------ - ---- -- ------- - ------ - --------
假如我们需要合并 React 和 React-Dom,生成的文件放在 Theme 文件夹里,文件名为 vendor.js。符合要求的代码在 webpack.config.js 文件中有了如下定义:
-- -------------------- ---- ------- ----- ---- - ---------------- ----- -------------- - ----------------------------------- -------------- - - ----- -------------- ------ ----------------- ------- - --------- --------------------------------------------- ----- ----------------------- ------- -- -------- - --- ---------------- ----------- -------------------- --------- --------- ------------ ----------- --------- ------------- ---------- ----- -- - --
当你打包的时候,就可以看到 React 和 React-Dom 被合并到了 vendor.js 中。
-- -------------------- ---- ------- -- --------------- ----- -------------------- -------------------------------- ---- ----------------- ---- ---------------------------- --- -- ------ ------- ----- -- ----- ----------------- -------- -------------------- - --- ----- ------------------------ ---------------------------------- ---- --------------------- ---- ------------------------------ --- -- ------ ------- ----- -- ----- ----------------- -------- -------------------- - --- --- -- -- ---- ----------------------- ----------------------------------------------------- - ------------------------------------------------------------------------------ -------- ------------------------------------------------------------------------------------------------------------------------