第1章 webpack简介

118 阅读1分钟

webpack是什么?

webpack 是一种前端资源构建工具,一个静态模块打包器(module bundler)。在 webpack 看来, 前端的所有资源文件(js/json/css/img/less/...)都会作为模块处理。它将根据模块的依赖关系进行静态分析,打包生成对应的静态资源(bundle)。

image.png

webpack的5个核心概念

Entry

入口(Entry)指示webpack以哪个文件为入口起点开始打包,分析构建内部依赖图。

Output

输出(Output)指示webpack打包后的资源bundles输出到哪里去,以及如何命名。

Loader

Loader让webpack能够去处理那些非JavaScript文件(webpack自身只理解JavaScript)

Plugins

插件(Plugins)可以用于执行范围更广的任务。插件的范围包括,从打包优化和压缩,一直到重新定义环境中的变量等。

Mode

模式(Mode)指示webpack使用相应模式的配置。

webpack 初始化配置

初始化 package.json,输入指令

npm init

下载并安装webpack

npm install webpack@4.41.6 webpack-cli@3.3.11 -g

编译和打包指令

// 开发环境
webpack src/js/index.js -o build/js/built.js --mode=development
// 生成环境
webpack src/js/index.js -o build/js/built.js --mode=production

以上指令可以翻译为,以 src/js/index.js 为入口,打包后 输出到 build/js/built.js, 以 开发/生产 模式

webpack 初体验

webpack能够编译打包JavaScript和JSON

index.js代码示例

import data from './data.json';
console.log(data);

function add(x, y) {
  return x + y;
}

console.log(add(1, 2));

运行指令 webpack src/js/index.js -o build/js/built.js --mode=development

image.png

webpack不能够编译打包非JavaScript和非JSON

index.js代码示例

import '../index.css'

import data from './data.json';
console.log(data);

function add(x, y) {
  return x + y;
}

console.log(add(1, 2));

运行指令后会报错,报错中提示你需要一个loader 去处理该类型的文件。

image.png