>[success] # 初次使用webpack
1. webpack的安装目前分为两个:**webpack、webpack-cli**,
* **webpack 是 Webpack 的核心模块**
* **webpack-cli 是 Webpack 的 CLI 程序**,用来在**命令行中调用 Webpack**
2. 执行**webpack**命令,会执行**node_modules下的.bin目录下的webpack**,**webpack**在执行时是依赖**webpack-cli**的,如果没有安装就**会报错**,**webpack-cli中代码执行时**,才是真正利用**webpack进行编译和打包的过程**
3. 安装指令
~~~ bash
npm install webpack webpack-cli –g # 全局安装
npm install webpack webpack-cli –D # 局部安装
~~~
* 注 当然你在使用**webpack-cli 所提供的 CLI'提供的一些指令时候可以通过npx**
>[danger] ##### 简单的使用步骤
1. 首先在我们要创建项目的文件下创建一个`package.json` -- 指令 `npm init -y`
2. 执行安装 `webpack` 指令
~~~ bash
npm install webpack webpack-cli –g # 全局安装
npm install webpack webpack-cli –D # 局部安装
~~~
3. 安装后想查看版本
* 在 `windows` 环境下想查看 `webpack `版本使用 `.\node_modules\.bin\webpack -v`
* 在 `linux `环境下想查看 `webpack `版本使用 `./node_modules/.bin/webpack -v`
* 最简单的办法指令 `npx webpack --version` 或者 `npx webpack -v`
4. 创建一个 `webpack` 的配置文件,默认配置文件是当前文件下的-- `webpack.config.js`,想自定义指定配置文件的目录使用 `npx webpack --config 指定目录` 或者` .\node_modules\.bin\webpack webpack --config 指定目录`
5. 当然所有指令也可以配置在 `package.json`中 `scripts ` 配置指令(`.\node_modules\.bin执行对应的配`)
~~~
"scripts": {
"build": "webpack"
// "build": "webpack --config 指定目录"
}
~~~
现在可以通过该`npm run build` 来执行webpack
>[info] ## 快速使用案例
1. **webpack 支持零配置**,也就是不用去配置提供的配置文件,**webpack 会按照自身内置默认条件进行打包**,也就是不用去创建`webpack.config.js` 文件webpack 也可以快速按照默认配置去完成一个项目打包
2. webpack默认打包**入口文件是./src/index.js**,打包后的**生成文件地址是./dist/main.js**
>[danger] ##### 案例
1. 下面文件结构目录就将两个 **esm** 文件变成了一个,因此最后可以**减少文件请求**
* 项目结构目录说明
~~~
├── 'dist' // 运行后生成的不是手动创建的
│ ├── 'main.js' // 运行后生成的不是手动创建的
│ ├── 'index.html' // 手动添加
├── 'node_modules' // npm下载包都在这个文件夹
├── 'src' // 整个工程文件目录
│ ├── 'hellowWebpack.js' // 写逻辑的地方
│ ├── 'index.js' // 打包的入口
├── 'package.json'
└── 'package-lock.json' // 锁版本包
~~~
* hellowWebpack.js
~~~
document.write('webpack1')
~~~
* index.js
~~~
import './hellowWebpack'
~~~
* dist/index.html
~~~html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<!-- 加一句吧打包后的js引入进来 -->
<script src="./main.js"></script>
</head>
<body>
</body>
</html>
~~~
- 工程化 -- Node
- vscode -- 插件
- vscode -- 代码片段
- 前端学会调试
- 谷歌浏览器调试技巧
- 权限验证
- 包管理工具 -- npm
- 常见的 npm ci 指令
- npm -- npm install安装包
- npm -- package.json
- npm -- 查看包版本信息
- npm - package-lock.json
- npm -- node_modules 层级
- npm -- 依赖包规则
- npm -- install 安装流程
- npx
- npm -- 发布自己的包
- 包管理工具 -- pnpm
- 模拟数据 -- Mock
- 页面渲染
- 渲染分析
- core.js && babel
- core.js -- 到底是什么
- 编译器那些术语
- 词法解析 -- tokenize
- 语法解析 -- ast
- 遍历节点 -- traverser
- 转换阶段、生成阶段略
- babel
- babel -- 初步上手之了解
- babel -- 初步上手之各种配置(preset-env)
- babel -- 初步上手之各种配置@babel/helpers
- babel -- 初步上手之各种配置@babel/runtime
- babel -- 初步上手之各种配置@babel/plugin-transform-runtime
- babel -- 初步上手之各种配置(babel-polyfills )(未来)
- babel -- 初步上手之各种配置 polyfill-service
- babel -- 初步上手之各种配置(@babel/polyfill )(过去式)
- babel -- 总结
- 各种工具
- 前端 -- 工程化
- 了解 -- Yeoman
- 使用 -- Yeoman
- 了解 -- Plop
- node cli -- 开发自己的脚手架工具
- 自动化构建工具
- Gulp
- 模块化打包工具为什么出现
- 模块化打包工具(新) -- webpack
- 简单使用 -- webpack
- 了解配置 -- webpack.config.js
- webpack -- loader 浅解
- loader -- 配置css模块解析
- loader -- 图片和字体(4.x)
- loader -- 图片和字体(5.x)
- loader -- 图片优化loader
- loader -- 配置解析js/ts
- webpack -- plugins 浅解
- eslit
- plugins -- CleanWebpackPlugin(4.x)
- plugins -- CleanWebpackPlugin(5.x)
- plugin -- HtmlWebpackPlugin
- plugin -- DefinePlugin 注入全局成员
- webapck -- 模块解析配置
- webpack -- 文件指纹了解
- webpack -- 开发环境运行构建
- webpack -- 项目环境划分
- 模块化打包工具 -- webpack
- webpack -- 打包文件是个啥
- webpack -- 基础配置项用法
- webpack4.x系列学习
- webpack -- 常见loader加载器
- webpack -- 移动端px转rem处理
- 开发一个自己loader
- webpack -- plugin插件
- webpack -- 文件指纹
- webpack -- 压缩css和html构建
- webpack -- 清里构建包
- webpack -- 复制静态文件
- webpack -- 自定义插件
- wepack -- 关于静态资源内联
- webpack -- source map 对照包
- webpack -- 环境划分构建
- webpack -- 项目构建控制台输出
- webpack -- 项目分析
- webpack -- 编译提速优护体积
- 提速 -- 编译阶段
- webpack -- 项目优化
- webpack -- DefinePlugin 注入全局成员
- webpack -- 代码分割
- webpack -- 页面资源提取
- webpack -- import按需引入
- webpack -- 摇树
- webpack -- 多页面打包
- webpack -- eslint
- webpack -- srr打包后续看
- webpack -- 构建一个自己的配置后续看
- webpack -- 打包组件和基础库
- webpack -- 源码
- webpack -- 启动都做了什么
- webpack -- cli做了什么
- webpack - 5
- 模块化打包工具 -- Rollup
- 工程化搭建代码规范
- 规范化标准--Eslint
- eslint -- 扩展配置
- eslint -- 指令
- eslint -- vscode
- eslint -- 原理
- Prettier -- 格式化代码工具
- EditorConfig -- 编辑器编码风格
- 检查提交代码是否符合检查配置
- 整体流程总结
- 微前端
- single-spa
- 简单上手 -- single-spa
- 快速理解systemjs
- single-sap 不使用systemjs
- monorepo -- 工程
- Vue -- 响应式了解
- Vue2.x -- 源码分析
- 发布订阅和观察者模式
- 简单 -- 了解响应式模型(一)
- 简单 -- 了解响应式模型(二)
- 简单 --了解虚拟DOM(一)
- 简单 --了解虚拟DOM(二)
- 简单 --了解diff算法
- 简单 --了解nextick
- Snabbdom -- 理解虚拟dom和diff算法
- Snabbdom -- h函数
- Snabbdom - Vnode 函数
- Snabbdom -- init 函数
- Snabbdom -- patch 函数
- 手写 -- 虚拟dom渲染
- Vue -- minVue
- vue3.x -- 源码分析
- 分析 -- reactivity
- 好文
- grpc -- 浏览器使用gRPC
- grcp-web -- 案例
- 待续