分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

webpack简介

发布时间:2023-09-06 02:13责任编辑:蔡小小关键词:webpack

本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)。当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个 bundle

webpack的核心:

  • 入口(entry)
  • 输出(output)
  • loader
  • 插件(plugins)

入口(entry):用来规定使用哪个模块作为入口,进入入口后,webpack会找出入口模块所依赖的其他模块进行处理。

配置 entry 属性,来指定一个入口起点(或多个入口起点)。默认值为 ./src

举个栗子:

module.exports = { ?entry: ‘./app/index.js‘};

以上例子其实是以下代码的简写

const config = { ?entry: { ???main: ‘./app/index.js‘
}
};

输出(output):output 属性告诉 webpack 在哪里输出它所创建的 bundles,以及如何命名这些文件,默认值为 ./dist

举个栗子:

module.exports = { ?output: { ???path: "/public",// 打包后的文件存放的地方 ???filename: "bundle.js"// 打包后输出文件的文件名 ?}}

loader:webpack自身只理解javascript文件,所以loader的作用就是处理非javascript文件,然后webpack再对他们进行处理。

在 webpack 配置中定义 loader 时,要定义在 module.rules中。

const config = { ?module: { ???rules: [ ?????{ test: /\.txt$/, use: ‘raw-loader‘ } ???] ?}};module.exports = config;

主要的两个配置:

test: 需要被转换的文件后缀

use:使用哪种类型的loader去转换

这就相当于告诉webpack,当遇到.txt文件时,需要先用loader处理后再进行打包。

插件(plugins):使用插件,需要通过require引入,然后把它添加到plugins数组中,并通过new操作符来创建它的实例。

const HtmlWebpackPlugin = require(‘html-webpack-plugin‘); // 通过 npm 安装const webpack = require(‘webpack‘); // 用于访问内置插件const config = { ?module: { ???rules: [ ?????{ test: /\.txt$/, use: ‘raw-loader‘ } ???] ?}, ?plugins: [ ???new webpack.optimize.UglifyJsPlugin(), ???new HtmlWebpackPlugin({template: ‘./src/index.html‘}) ?]};module.exports = config;

模式:通过选择 development 或 production 之中的一个,来设置 mode 参数,你可以启用相应模式下的 webpack 内置的优化

module.exports = { ?mode: ‘production‘};

如果设置为development,则会将 process.env.NODE_ENV 的值设为 development。启用 NamedChunksPlugin 和 NamedModulesPlugin

如果设置为production 会将 process.env.NODE_ENV 的值设为 production。启用 FlagDependencyUsagePluginFlagIncludedChunksPluginModuleConcatenationPluginNoEmitOnErrorsPluginOccurrenceOrderPluginSideEffectsFlagPlugin 和 UglifyJsPlugin.

webpack简介

原文地址:https://www.cnblogs.com/lqw007/p/9592122.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved