网站首页 > 技术文章 正文
1. Webpack的核心概念
1.1 核心概念说明:
1.1.1 入口(entry)
入口起点(entry point)指示 webpack 应该使用哪个模块(文件),作为构建其内部依赖图的开始
说明:
- 在webpack构建时,会先找到入口文件,
- 然后在入口文件中无找到需要直接或间接依赖的模块
- webpack将每个依赖进行处理,最后出入构建后的结果
例如:
module.exports = {
entry: 'index.js'
}
1.1.2 出口(output)
Output: 输出指示,告诉Webpack打包好的资源bundles输出到哪里去,以及如何命名输出的文件
例如:
module.exports = {
entry : 'index.js',
output: {
filename: 'handle.js', // 配置导出的文件名
path: resolve(__dirname,'dist') // 将打包后的文件放在哪个文件夹中
}
}
1.1.3 Loader 处理文件
Webpack核心只能处理JavaScript以及JSON资源文件, 非JS文件Webpack只能交给Loader处理
通过来说就是通过loader将webpack不能是被的文件转成webpack能识别的模块
例如:
module.exports = {
module: { // module
rules: [ // 规则
{
// 正则匹配
test: /\.css&/,
// 使用css-loader,将css转成js能识别的模块
use: 'css-loader'
}
]
}
}
1.1.4 Plugin 插件
Plugin插件,可以用于执行范围更广的任务.插件的范围包括从打包优化,压缩,到重新定义环境变量.
通俗的来了解,插件就是对于webpack功能的扩展
例如:
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
plugins: [
new HtmlWebpackPlugin();
]
}
1.1.5 Mode模式
Mode 模式, 用来告诉Webpack在不同的模式下使用不同的配置,主要有开发模式和生产模式
对于核心的概念现有一个初步的认识,后面会大量地讲解和使用
1.2 Model 模式的了解
Mode模式用于指定Webpack打包使用相应模式的配置
选项 | 描述 | 特点 |
development | 会将process.env.NODE_ENV的值设置为development | 能让代码本地调试运行的环境 |
production | 会将process.env.NODE_ENV的值设置为production | 能让代码优化上下运行的环境 |
简而言之,
- 开发环境development,为了本来调试不会对打包后的代码进行压缩
- 生产环境production,为了上线的性能,会将打包后的代码进行压缩
2. Webpack安装
2.1 Webpack安装
全局安装
$ npm install -g webpack webpack-cli
局部安装
注意局部安装 将webpack安装到开发依赖中
$ npm install webpack webpack-cli --save-dev
2.2 webpack和webpack-cli介绍
2.2.1 介绍
webpack3中webpack-cli是合在webpack中。所以在安装webpack3版本的时候,
只需要安装下面的命令就可以了
## webpack3 安装方式
$ npm install -g webpack
webpack4.0 以后,执行方式就发生了改变,不再是 webpack 一波流,而是多了一个 webpack-cli。所以安装时两个都需要安装
2.2.2 两者之间的关系
- webpack是webpack的核心代码
- webpack-cli是提供webpack命令
3. webpack的简单使用
使用Webpack对模块化文件进行打包
3.1 对于webpack打包命令的了解
语法使用
$ webpack <entry> <output>
例子
$ webpack index.js bundle.js
命令的意思,是将index.js作为打包的入口开始打包,打包后的文件叫做bundle.js
3.2 定义模块
3.2 通过webpack命令打包
3.4 打包后的文件
3.5 显示结果
总结:
- webpack 只能处理js/json资源,不能处理img/css等其他资源
- 生产环境和开发环境将模块化编译成浏览器能识别的模块化
- 生产环境比开发环境多一个压缩js带代码的功能
猜你喜欢
- 2024-10-04 Webpack 4.X 从入门到精通-entry与output(一)
- 2024-10-04 Webpack优化构建速度(webpack做过哪些优化)
- 2024-10-04 「 webpack 」 webpack 构建基本参数配置
- 2024-10-04 再不了解就落伍了!揭开构建神器webpack神秘面纱
- 2024-10-04 带你深度解锁Webpack系列(优化篇)
- 2024-10-04 你配置 Webpack 4 的方式可能是错的!
- 2024-10-04 面试题:webpack3和webpack4的区别有哪些?
- 2024-10-04 Vue_Webpack详解(vue使用webpack)
- 2024-10-04 带你深度解锁Webpack系列(基础篇)
- 2024-10-04 Webpack快速入门(webpack使用流程)
- 10-02基于深度学习的铸件缺陷检测_如何控制和检测铸件缺陷?有缺陷铸件如何处置?
- 10-02Linux Mint 22.1 Cinnamon Edition 搭建深度学习环境
- 10-02AWD-LSTM语言模型是如何实现的_lstm语言模型
- 10-02NVIDIA Jetson Nano 2GB 系列文章(53):TAO模型训练工具简介
- 10-02使用ONNX和Torchscript加快推理速度的测试
- 10-02tensorflow GPU环境安装踩坑日记_tensorflow配置gpu环境
- 10-02Keye-VL-1.5-8B 快手 Keye-VL— 腾讯云两卡 32GB GPU保姆级部署指南
- 10-02Gateway_gateways
- 最近发表
-
- 基于深度学习的铸件缺陷检测_如何控制和检测铸件缺陷?有缺陷铸件如何处置?
- Linux Mint 22.1 Cinnamon Edition 搭建深度学习环境
- AWD-LSTM语言模型是如何实现的_lstm语言模型
- NVIDIA Jetson Nano 2GB 系列文章(53):TAO模型训练工具简介
- 使用ONNX和Torchscript加快推理速度的测试
- tensorflow GPU环境安装踩坑日记_tensorflow配置gpu环境
- Keye-VL-1.5-8B 快手 Keye-VL— 腾讯云两卡 32GB GPU保姆级部署指南
- Gateway_gateways
- Coze开源本地部署教程_开源canopen
- 扣子开源本地部署教程 丨Coze智能体小白喂饭级指南
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- c语言min函数头文件 (77)
- asynccallback (87)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 无效的列索引 (74)