webpack5使用说明

本文尚未完成,后续持续更新

起步

  1. 开始:搭建webpack基础环境
mkdir webpack-demo
cd webpack-demo
npm init -y
npm install webpack webpack-cli --save-dev
mkdir src
mkdir dist 
  1. 修改package.json文件
    1. json文件里的注释自行去掉,json文件不支持注释
    2. -号表示需要在源文件删除,+号表示需要新增
 {
   "name": "webpack-demo",
   "version": "1.0.0",
   "description": "",
   // main和private的修改确保安装包是私有的,防止意外发布代码
-  "main": "index.js",
+  "private": true,
   "scripts": {
     "test": "echo \"Error: no test specified\" && exit 1",
     //可以使用npm run build构建代码 
     //--config  webpack.config.js可以省略,--config默认文件名为:webpack.config.js
     //如果需要自定义配置文件名,修改此选项即可
+    "build": "webpack --config webpack.config.js"
   },
   "keywords": [],
   "author": "",
   "license": "MIT",
   "devDependencies": {
     "webpack": "^5.38.1",
     "webpack-cli": "^4.7.2"
     //这里的内容是npm下载依赖时系统自动生成,不需要手动修改
+	"依赖包名":"版本号"
   }
 }
  1. 创建webpack.config.js文件
 const path = require('path');

 module.exports = {
 	//设置webpack的入口js文件
   entry: './src/index.js',
   //代码输出相关配置
   output: {
   	//设置打包输出的js文件名称
     filename: 'bundle.js',
     //设置文件输出到哪个目录
     path: path.resolve(__dirname, 'dist'),
   },
 };

依赖列表

  • webpack webpack-cli
    • 命令:npm install webpack webpack-cli --save-dev
    • 作用:搭建webpack环境
  • style-loader css-loader
    • 命令: npm install --save-dev style-loader css-loader
    • 作用:加载css文件
  • webpack-dev-server
    • 命令:npm install --save-dev webpack-dev-server
    • 作用:自动编译代码
  • html-webpack-plugin
    • 命令:npm install --save-dev html-webpack-plugin
    • 作用:自动生成html5文件
    • 官网文档地址
  • @babel/core @babel/preset-env babel-loader
    • 命令:npm install --save-dev @babel/core @babel/preset-env
    • 作用:①生成兼容指定浏览器版本的js代码工具的核心代码。②生成预置的babel环境。③将babel和webpack结合
  • core-js
    • 命令:npm install --save-dev core-js
    • 作用:可以使本不兼容新特性的浏览器上使用新特性

配置文件详解

默认配置文件名webpack.config.js,如果需要要自定义配置文件名则
 const path = require('path');

 module.exports = {
 	//设置webpack的入口js文件
   entry: './src/index.js',
   //代码输出相关配置
   output: {
   	//设置打包输出的js文件名称
     filename: 'bundle.js',
     //设置文件输出到哪个目录
     path: path.resolve(__dirname, 'dist'),
     //指定输出的文件名结果
     assetModuleFilename: 'images/[hash][ext][query]',
   },
   
  module: {
    rules: [
     //加载css文件
      {
      	//设置匹配的文件名后缀
        test: /\.css$/i,
        //设置使用的依赖
        use: ['style-loader', 'css-loader'],
      },
      //加载image图片
      {
      	//设置匹配的文件名后缀
        test: /\.(png|svg|jpg|jpeg|gif)$/i,
        //设置资源模块类型,详情查看https://webpack.docschina.org/guides/asset-modules/
        type: 'asset/resource',//asset/inline | asset/source | asset
      },
      //加载字体文件
      {
        test: /\.(woff|woff2|eot|ttf|otf)$/i,
        type: 'asset/resource',
      },
      //加载csv,tsv文件
      {
        test: /\.(csv|tsv)$/i,
        use: ['csv-loader'],
      },
      //加载xml文件
      {
        test: /\.xml$/i,
        use: ['xml-loader'],
      },
      {
	    test: /\.html/,
	    type: 'asset/resource',
	    //生成文件到指定目录
	    generator: {
	      filename: 'static/[hash][ext][query]'
	    }
	    //排除HTMLWebpackPlugins设置中的模板文件,否则会造成该插件某些配置失效
	    exclude:/module.html/
      }
      //加载
      //加载其它文件
     //具体使用参考https://webpack.docschina.org/guides/asset-management/
    ],
  },
    plugins: [
    //加载html-webpack-plugin插件,生成html文件,详情参考https://github.com/jantimon/html-webpack-plugin#options
    //注意:HTMLWebpackPlugin
      new HTMLWebpackPlugin({
      	//设置生成的html的文件title
          title:'webpack-ts',
          //设置生成html文件的模板
          template: "./src/module/module.html",
          //设置生成的文件名,
          filename: "[name].create.html",
          inject: true,
      }),
    ],
 };

自动编译代码

调整文本编辑器

使用自动编译代码时,可能会在保存文件时遇到一些问题。某些编辑器具有 “safe write(安全写入)” 功能,会影响重新编译。如不影响编译不建议关闭,safe write的作用是保证要保存的文件不会丢失,具体原理详见这篇博文

在一些常见的编辑器中禁用此功能,查看以下列表:

  • Sublime Text 3:在用户首选项(user preferences)中添加 atomic_save: 'false'
  • JetBrains IDEs (e.g. WebStorm):在 Preferences > Appearance & Behavior > System Settings 中取消选中 "Use safe write"
  • Vim:在设置(settings)中增加 :set backupcopy=yes
你好!对于Webpack 5的教程,我可以为您提供一些基本信息和指导。Webpack是一个模块打包工具,它可以将各种资源(例如JavaScript、CSS、图片等)打包成一个或多个文件,以优化网页加载速度。 以下是Webpack 5的一些重要特性和教程资源: 1. 模块联邦(Module Federation):Webpack 5引入了模块联邦的功能,允许多个独立的Webpack构建之间共享模块。这使得在大型项目中更容易实现微服务架构。您可以查阅Webpack官方文档中关于模块联邦的介绍和示例。 2. 改进的性能:Webpack 5在构建速度和输出文件大小方面进行了一些优化。它引入了持久缓存(persistent caching)功能,提高了构建速度。另外,Webpack 5还通过使用更先进的算法(如Tree Shaking、Scope Hoisting等)来减小输出文件的大小。 3. 新的插件系统:Webpack 5引入了一种新的插件系统,使得编写和使用插件更加简单和灵活。您可以查阅Webpack官方文档中关于插件系统的说明和示例。 对于Webpack 5的更详细教程和示例代码,您可以参考以下资源: - Webpack官方文档:Webpack官方文档提供了全面的关于Webpack 5的指南和示例。您可以访问官方文档并查找与您需求相关的章节和示例代码。 - CSDN:在CSDN上有很多Webpack 5的教程和示例代码,您可以通过搜索“webpack5教程”来查找相关资源。 - GitHub:许多开发者在GitHub上分享了关于Webpack 5的教程和示例项目。您可以在GitHub上搜索“webpack5 tutorial”来查找相关资源。 希望这些信息能够帮助到您!如果您有任何其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值