webpack --- > [4.x]你能看懂的webpack项目初始化

25 篇文章 0 订阅
7 篇文章 0 订阅

说明:

  • 本篇文章主要做如下事情:
  1. 创建一个基本的webpack4.x 项目
  2. [报错]: The 'mode' option has not been set, webpack will fallback to 'production' for this value
  3. [报错]: ERROR in Entry module not found: Error: Can not resolve './src' in 'D:\L-react\HeiMa\01.webpack-base'
  4. [插件] :webpack-dev-server
  5. [插件] : html-webpack-plugin

创建基本的 webpack4.x 项目

  • 1.快速初始化一个项目: npm init -y
  • 2.在项目根目录创建 src源代码目录和dist产品目录
  • 3.在 src 目录下创建index.html
  • 4.使用 cnpm 安装 webpack,运行cnpm i webpack -D
  • 5.使用 cnpm 安装 webpack-cli,运行cnpm i webpack-cli -D

webpack常见报错

The 'mode' option has not been set, webpack will fallback to 'production' for this value. Set 'mode' option to 'development' or 'production' to enable defaults for each environment.

  • 原因是缺少mode
  • 4.x中新增了mode. production属性,会默认对文件进行压缩.

ERROR in Entry module not found: Error: Can not resolve './src' in 'D:\L-react\HeiMa\01.webpack-base'

  • 入口文件未找到,在 webpack 4.x 中,不需要配置入口文件, 采用约定大于配置原则. 默认的打包入口路径是 src -> index.js.
  • 默认约定了
  • 打包入口文件 ./src/index.js
  • 打包的输出文件是 ./dist/main.js

新建 webpack.config.js

  • 向外暴露成员: mopdule.exports or export default

配置好模式和入口文件后

  • 手动在最开始的页面中引入 js 文件
<script src="../dist/main.js"></script>

webpack-dev-server

  • cnpm i webpack-dev-server -D
  • 每次写完代码手动调用webpack去打包代码太麻烦,因此使用 webpack-dev-server来进行自动打包构建
  • 使用 webpack-dev-server启动.
  • Project is running at http://localhost:8080: 项目正在8080端口运行(此时是一个小型的服务器)
  • webpack output is served from /: 托管的的路径是根路径. 在此项目中即: 01.webpack-base
  • 通过webpack-dev-server打包生成的main.js为了提高性能,是放在内存中的.

[所做事情]

  1. 保存时,自动打包生成一个main.js在内存中(注意,不是在磁盘)
  2. --open: 自动打开浏览器
  3. --port 3000: 指定端口
  4. --hot: 热更新
  5. --progress: 打包记录
  6. --compress: 压缩
  7. --host 127.0.0.1: 指定主机ip

html-webpack-plugin

  • cnpm i html-webpack-plugin -D
  • 未配置html-webpack-plugin的主页是在磁盘上面的,磁盘的读取速度不如内存
  • 使用
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');

const htmlPlugin = new HtmlWebpackPlugin({
  template: path.join(__dirname, './src/index.html'),   // 源文件
  filename: 'index.html'  // 生成在内存中首页的名称
})

module.exports = {
  mode: 'development',
  plugins: [
    htmlPlugin
  ]
}

[所做事情]:

  1. 根据给定模板,在给定路径下生成内存中的主页
  2. 会自动添加<script type="text/javacript" src="main.js"></script>

小结:

  1. 上面2个插件的主要思想是: 减少磁盘相关的操作,利用内存的快速
  2. React的虚拟DOM也是使用内存中的对象来描述真实的DOM
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
webpack-dev-server是一个用于开发环境的工具,它提供了一个实时重载的开发服务器。通过使用命令"> webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",你可以启动webpack-dev-server,其中"--inline"选项用于在浏览器中内联模式显示编译错误和警告,"--progress"选项用于在控制台中显示编译进度,"--config build/webpack.dev.conf.js"选项用于指定webpack配置文件的路径。这个配置文件包含了开发环境的相关配置信息,例如入口文件、输出路径等。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [> dev > webpack-dev-server --inline --progress --config build/webpack.dev.conf.js](https://blog.csdn.net/chanyeolchichi/article/details/124688983)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Vue运行报错webpack-dev-server --inline --progress --config build/webpack.dev.conf.js](https://blog.csdn.net/qq_18671415/article/details/109306424)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [vue-cli项目根据线上环境分别打出测试包和生产包](https://download.csdn.net/download/weixin_38643141/13588313)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值