webpack4.x 新功能介绍及使用技巧

阅读时长 4 分钟读完

webpack 是一个流行的前端打包工具,它可以将多个模块打包成一个或多个 bundle。webpack 4.x 是 webpack 的最新版本,它引入了许多新功能和改进,本文将介绍这些新功能及其使用技巧。

新功能介绍

支持零配置

webpack 4.x 引入了一个新的模式,称为 “零配置模式”,它不需要任何配置文件即可运行。可以使用 npx webpack 命令启动 webpack,webpack 会自动查找项目中的入口文件并生成默认的配置。如果需要自定义配置,可以在命令行中传递参数或者创建一个配置文件。

支持 mode 选项

webpack 4.x 引入了一个新的选项 mode,它可以指定 webpack 的构建模式。mode 有三个可选值:developmentproductionnone。默认值是 production。不同的模式会启用不同的优化策略,例如 production 模式会启用代码压缩和 tree shaking。

支持 optimization 选项

webpack 4.x 引入了一个新的选项 optimization,它可以控制 webpack 的优化策略。optimization 中有多个子选项,例如 minimizersplitChunksruntimeChunk。通过配置这些选项,可以进一步优化 webpack 的构建效率和输出质量。

支持 module 类型

webpack 4.x 引入了一个新的模块类型 module,它可以让开发者更方便地使用现代 JavaScript 特性,例如 ES6 模块和动态导入。module 类型的模块可以通过 import() 函数动态加载,而不需要使用 require.ensure 或者其他复杂的方式。

支持 sideEffects 属性

webpack 4.x 引入了一个新的属性 sideEffects,它可以标记模块是否有副作用。副作用是指模块的执行会对环境产生影响,例如修改全局变量或者发送网络请求。通过标记模块的副作用,webpack 可以更好地进行 tree shaking,减少输出的代码体积。

使用技巧

使用 mode 选项

在项目的根目录下创建一个 webpack.config.js 文件,并添加以下内容:

然后在命令行中执行 npx webpack 命令即可使用 development 模式进行构建。如果需要使用 production 模式,可以将 mode 的值改为 production

使用 optimization 选项

webpack.config.js 文件中添加以下内容:

这会启用代码压缩功能,将输出的代码体积减小。还可以配置其他选项,例如 splitChunksruntimeChunk,以进一步优化输出的质量。

使用 module 类型

在项目中使用 ES6 模块和动态导入时,可以将模块的类型设置为 module,以便 webpack 正确地处理这些模块。在 webpack.config.js 文件中添加以下内容:

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

这会将所有以 .js 结尾的文件的类型设置为 module

使用 sideEffects 属性

在模块中使用 sideEffects 属性,以标记模块是否有副作用。例如:

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

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

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

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

webpack.config.js 文件中添加以下内容:

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

这会启用 sideEffects 功能,将有副作用的模块标记为不可 tree shaking。

结论

webpack 4.x 引入了许多新功能和改进,使得前端开发更加便捷和高效。在实际项目中,可以根据需求灵活使用这些功能,并结合其他工具和技术,以提高项目的开发效率和运行质量。

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

纠错
反馈