webpack 是一种前端资源构建工具, 一个静态模块打包器(module bundler)。
在 webpack 看来, 前端的所有资源文件(js/json/css/img/less/…)都会作为模块处理。
它将根据模块的依赖关系进行静态分析, 打包生成对应的静态资源(bundle)。
入口(Entry)指示 webpack 以哪个文件为入口起点开始打包, 分析构建内部依赖图。
输出(Output)指示 webpack 打包后的资源 bundles 输出到哪里去, 以及如何命名。
Loader 让 webpack 能 够 去 处 理 那 些 非 JavaScript 文 件 (webpack 自 身 只 理 解
JavaScript)
插件(Plugins)可以用于执行范围更广的任务。 插件的范围包括, 从打包优化和压缩,
一直到重新定义环境中的变量等。
模式(Mode)指示 webpack 使用相应模式的配置。
选项 | 描述 | 特点 |
---|---|---|
development | 会将 DefinePlugin 中 process.env.NODE_ENV 的值设置 为 development。 启用 NamedChunksPlugin 和 NamedModulesPlugin。 | 能让代码本地调试 运行的环境 |
production | 会将 DefinePlugin 中 process.env.NODE_ENV 的值设置 为 production。 启用 FlagDependencyUsagePlugin, FlagIncludedChunksPlugin, ModuleConcatenationPlugin, NoEmitOnErrorsPlugin, OccurrenceOrderPlugin, SideEffectsFlagPlugin 和 TerserPlugin。 | 能让代码优化上线 运行的环境 |
命令
npm init
npm install webpack webpack-cli -g
npm install webpack webpack-cli -D
创建文件
开发环境打包
功能: webpack 能够编译打包 js 和 json 文件, 并且能将 es6 的模块化语法转换成
浏览器能识别的语法
webpack ./src/js/index.js -o ./build/js/built.js --mode=development
#说明:-o:打包后文件输出位置; --mode:打包环境(development/production)
生产环境打包
功能: 在开发配置功能上多一个功能, 压缩代码。
webpack ./src/js/index.js -o ./build/js/built.js --mode=production
##说明:-o:打包后文件输出位置; --mode:打包环境(development/production)
webpack 能够编译打包 js 和 json 文件。
能将 es6 的模块化语法转换成浏览器能识别的语法。
能压缩代码。
不能编译打包 css、 img 等文件
不能将 js 的 es6 基本语法转化为 es5 以下语法。