HAHAHAHAHAHA

253 阅读2分钟

1. 初探webpack

1.1 webpack究竟是什么

  • 粗暴且浅显的当做抬举版JS翻译器
  • 避免面向过程组织代码,难以维护,要分模块
  • 在index.html中,script标签引入过多,增加http请求数量,且会因为引入顺序导致执行先后的bug
npm init
npm install webpack-cli —save-dev    // 直接安装webpack-cli会默认安装webpack
npm install webpack --save           // 安装webpack
npx webpack index.js   //用webpack翻译index.js这个文件
// 生成一个dist文件夹 更改index.html引入路径
// <script src='./dist/main.js'></script>

代码 01-01

1.2 什么是模块打包工具?

  • webpack is a module bundler
  • 模块打包工具可以识别模块引入语法,然后生成可执行代码
  • 从单纯的JS模块打包工具发展到打包任何文件
  • ES Moudule 模块引入
export default Header;
import Header from './header.js';
  • CommonJS 模块引入规范
module.exports = Header;
var Header = require('./header.js');

代码 01-02

1.3 Webpack的正确安装方式

npm init  // 以node规范的方式创建包文件
npm init -y  // 一路yes

// 全局安装删除
// 同一台机器 不同项目webpack版本不同 全局安装隐患

npm install webpack webpack-cli -g
npm uninstall webpack webpack-cli -g
yarn global add webpack webpack-cli
yarn global remove webpack webpack-cli

// 局部安装 切换到当前目录
npm install webpack webpack-cli --save-dev
yarn add webpack webpack-cli --save-dev
// --save-dev  === -D

webpack -v  // 全局搜索webpack
npx webpack -v // 当前文件夹中寻找

npm info webpack   // 查看所有版本号
npm install webpack@4.16.5 webpack-cli -D  // 安装特定版本

npm install  // 安装依赖

代码 01-03

1.4 使用Webpack的配置文件

  • 项目webpack默认配置文件(不写就会有默认配置) webpack.config.js
  • npx webpack index.js, 若只执行npx webpack则报错,找不到入口文件,此时需在webpack.config.js中配置
const path = require('path');
module.exports = {
	entry: './src/index.js',
	output: {
		filename: 'bundle.js',
		path: path.resolve(__dirname, 'dist') 
	}
}

path是打包出的文件放在哪里(需引入path模块, path.resolve) __dirname为webpack.config.js当前同级目录

  • 当默认配置文件名字有改变(webpackconfig.js)
npx webpack --config webpackconfig.js
  • 三种运行webpack方式

    • global => webpack index.js
    • local => npx webpcak index.js
    • npm scripts => npm run bundle(会先local查找后global查找)
     "scripts": {
        "bundle": "webpack"
    },
    
  • 安装webpack-cli的作用是使命令行可以运行webpack

代码 01-04

1.5 浅析 Webpack 打包输出内容

  • 打包信息里 main的含义,不写是默认的
  • mode不写默认production,打包后压缩,配置development,打包代码不会压缩

代码 01-05

2. webpack核心概念

2.1 什么是 loader试看

2.1 使用 Loader 打包静态资源(图片篇)

2.1 使用 Loader 打包静态资源(样式篇 - 上)

2.1 使用 Loader 打包静态资源(样式篇 - 下)

2.1 使用 plugins 让打包更便捷

2.1 Entry 与 Output 的基础配置

2.1 SourceMap 的配置

2.1 使用 WebpackDevServer 提升开发效率

2.1 Hot Module Replacement 热模块更新(1)

2.1 Hot Module Replacement 热模块更新(2)

2.1 使用 Babel 处理 ES6 语法(1)

2.1 使用 Babel 处理 ES6 语法(2)

2.1 Webpack 实现对React框架代码的打包