【Webpack】基本使用方法

参考视频:

30 分钟掌握 Webpack_哔哩哔哩_bilibili

什么是webpack

简单来说就是一个 打包工具,

可以将互相依赖的html、css、js以及图片字体等资源文件,经过处理打包成一个可执行的项目文件

🌰看例子

环境初始化

在需要使用webpack的文件夹下,

首先执行npm init -y初始化,其中-y表示所有选项使用默认值

再执行npm add webpack webpack-cli --dev将webpack安装到开发者环境中

这样我们就能获得初始的开发环境

基础的例子

新建一个 'src' 文件夹,然后在里面新建一个 'index.js'

console.log("hello word")

编写一个简单的console.log调试功能,同时将这个文件引入 'index.html'

<body>
		<h1>hello world</h1>
		<script src="./index.js"></script>
	</body>

执行一下,类似这样

所以现在我们就能打包这个文件了

执行命令 npx webpack

可以看到生成了 'dist/main.js'

其中main.js就是webpack打包后的内容,可以看到和我们写的console.log一致

所以接下来体验一下webpack整合代码的功能

在src下再写一个文件data.js

然后修改index.js为调用这个getData()函数

然后再执行npx webpack打包代码

可以看到main.js中的代码简化了

说明webpack智能地判断了代码的逻辑,通过import获取了代码,知道我们只打印了这个数组,所以整合到一起的代码就如上图所示

✨配置webpack

这里才是学习webpack的重头戏,毕竟在webpack配置完成后,每次只要执行npx webpack便能智能地完成打包

初步配置

在根目录下新建一个'webpack.config.js'文件

const path=require('path')

module.exports={
	//环境配置   development开发者    production  生产者
	mode:"development",
//方便查看源代码
devtool:"inline-source-map",
	//入口文件
	entry:"./src/index.js",
	//打包文件名
	output:{
		//文件名
		filename:"dist.js",
		//文件路径
		path:path.resolve(__dirname,"dist")
	}
}

其中

  • mode,选择了开发者模式
  • entry,选择了相对于config文件的src目录下的index.js作为入口文件
  • output, 对于输出配置了输出的名字,并且使用了自带的path配置了输出目录

执行npx webpack,可以看到不仅重新输出了dist.js,其中的内容也和之前的有了不一样

打包CSS文件和图片

要先安装 npm add --dev style-loader css-loader

然后要在webpack.config.js里对需要引入的文件名进行配置,如css文件的配置如下

  module: {
    rules: [
      {
        test: /\.css$/i,
        use: ["style-loader", "css-loader"],
      },
    ],
  },

同理要多配置图片文件则再写一个rules中的元素即可

  module: {
    rules: [
      {
        test: /\.css$/i,
        use: ["style-loader", "css-loader"],
      },
      {
        test: /\.(png|svg|jpg|jpeg|gif)$/i,
        type: "asset/resource",
      },
    ],
  },

所以在入口文件index.js中引入style.css和图片assets/images/avater.jpg即可

使用webpack插件自动生成html文件

还是安装

npm add html-webpack-plugin --dev

然后导入webpack.config.js文件

const HtmlWebpackPlugin = require("html-webpack-plugin")

再进行配置即可

  plugins:[
    new HtmlWebpackPlugin()
  ],

所以这时候再执行打包命令,可以看到输出文件夹下还多了一个index.html

这个HTML的标题默认为Webpack App

我们也可以对这个进行配置

兼容低版本浏览器

要让新的JavaScript的特性兼容低版本的浏览器,需要用到babel,而webpack也支持相应的loader

所以首先还是安装

npm add --dev babel-loader @babel/core @babel/preset-env

这三个包提供了我们需要的功能

然后再进行下面的配置

{
  test: /\.js$/,
  exclude: /node_modules/,
  use: {
    loader: "babel-loader",
    options: {
      presets: ["@babel/preset-env"],
    },
  },
},

压缩打包后的js代码

同样是两步,先安装

npm add --dev terser-webpack-plugin

然后引入和配置

const TerserPlugin = require("terser-webpack-plugin")

  optimization: {
    minimize: true,
    minimizer: [new TerserPlugin()],
  },

无需执行命令自动打包

现在每次修改了代码后都得重新执行打包命令

webpack也提供了一个插件能在保存后自动打包

还是先安装

npm add --dev webpack-dev-server

然后先在webpack.config.js中进行配置

  devServer: {
    static: "./dist",
  },

再在package.json中进行配置

  "scripts": {
    "start": "webpack serve --open"
  },

这样在我们执行npm start的时候就会自动执行webpack serve

并且通过 npm start 打开的网页能在我们修改保存后自动刷新页面

避免浏览器缓存js文件

由于现在每次生成的文件名都是dist.js,所以浏览器会对这个文件进行缓存,进而不更新

为了避免进行缓存,可以给文件名添加一段随机的字符,每次更新后都生成新的随机字符

所以在webpack.config.js中配置输出即可

output: {
    filename: "[name].[contenthash].js",
    path: path.resolve(__dirname, "dist"),
  },

配置可视化打包工具

这是一个帮助分析的工具,它会可视化地展现打包过程中哪个文件占的体积比较大

所以同样的,先是安装这个插件

npm add --dev webpack-bundle-analyzer

接着在配置中引入这个插件

const BundleAnalyzerPlugin = require("webpack-bundle-analyzer");

以及在plugins中添加它

  plugins: [
    new HtmlWebpackPlugin({
      title: "test",
    }),
    new BundleAnalyzerPlugin.BundleAnalyzerPlugin()
  ],

所以此时再运行npx webpack

自动跳出了这样的文件分析图

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Webpack 是一个现代化的 JavaScript 应用程序打包工具,它将多个 JavaScript 文件和其他类型的静态资源(例如 CSS、图片等)打包成一个或多个文件,以便于在浏览器中加载和执行。 Webpack基本用法如下: 1. 安装 webpackwebpack-cli ``` npm install webpack webpack-cli --save-dev ``` 2. 创建一个 webpack 配置文件 `webpack.config.js`,其中包含打包的入口文件、输出目录、各种加载器和插件的配置等。 ``` const path = require('path'); module.exports = { entry: './src/index.js', output: { filename: 'bundle.js', path: path.resolve(__dirname, 'dist'), }, module: { rules: [ { test: /\.js$/, exclude: /node_modules/, use: { loader: 'babel-loader', options: { presets: ['@babel/preset-env'], }, }, }, { test: /\.css$/, use: ['style-loader', 'css-loader'], }, { test: /\.(png|svg|jpg|jpeg|gif)$/i, type: 'asset/resource', }, ], }, }; ``` 3. 运行 webpack 命令进行打包。 ``` npx webpack --config webpack.config.js ``` 4. 在 HTML 页面中引入打包生成的 JavaScript 文件。 ``` <script src="dist/bundle.js"></script> ``` 这是一个基本webpack 配置示例,其中包含了对 JavaScript、CSS 和图片等资源的处理。根据实际情况,还可以添加其他类型的加载器和插件来实现更丰富的功能。 ### 回答2: webpack是一个现代化的模块打包工具,它可以将项目中的各种资源,如JavaScript、CSS、图片等转换和打包成一个或多个静态资源文件。以下是webpack使用方法: 1. 安装webpack:首先,需要在项目中安装webpack。可以通过npm(Node Package Manager)命令进行安装。打开命令行窗口,进入项目目录,运行下面的命令进行安装: ``` npm install webpack --save-dev ``` 2. 创建webpack配置文件:在项目根目录下创建一个名为`webpack.config.js`的文件作为webpack的配置文件。 3. 配置入口文件和出口文件:在配置文件中,需要指定项目的入口文件和出口文件。入口文件是指webpack将从这个文件开始找到所有的依赖关系,而出口文件则是指打包后生成的静态资源文件。以下是一个简单的配置示例: ```javascript module.exports = { entry: './src/index.js', output: { filename: 'bundle.js', path: path.resolve(__dirname, 'dist') } }; ``` 4. 配置加载器和插件:除了可以打包JavaScript文件,webpack还支持加载和打包各种其他类型的资源文件。可以使用加载器(loader)来处理这些文件,并通过插件(plugin)来扩展webpack的功能。 5. 运行webpack:在命令行窗口中运行`webpack`命令,webpack将读取配置文件,并根据配置文件的内容进行打包。 以上是webpack基本使用方法。另外,还可以通过webpack命令行窗口中的参数来指定不同的打包模式、指定其他配置文件等。通过学习和深入了解webpack的各种功能和选项,可以更加灵活地使用webpack来构建复杂的前端项目。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值