在网页中会引用哪些常见的静态资源?
- JS
- .js .jsx .coffee .ts(TypeScript 类 C# 语言)
- CSS
- .css .less .sass .scss
- Images
- .jpg .png .gif .bmp .svg
- 字体文件(Fonts)
- .svg .ttf .eot .woff .woff2
- 模板文件
- .ejs .jade .vue
webpack打包过程
根据模块的依赖关系进行依赖分析,打包生成对应的静态资源。
将每一个依赖记录好,形成一个依赖关系树状结构图,将代码引进来形成chunk(代码块),将chunk进行打包(比如将less编译成css文件)打包好输出的资源叫bundle。webpack的五个核心概念
Entry
入口(Entry)指示Webpack以哪个文件为入口七点开始打包,分析构建内部依赖图。Output
输出(Output)指示Webpack打包后的资源bundles输出到哪里去,以及如何命名。Loader
Loader让Webpack能够去处理那些非Javascript文件(Webpack自身只理解Javascript)。Plugins
插件(Plugins)可以用于执行范围更广的任务。插件的范围包括,从打包优化和压缩,一直到重新定义环境中的变量等。Mode
模式(Mode)指示Webpack使用相应模式的配置。
- .ejs .jade .vue
| 选项 | 描述 | 特点 |
|---|---|---|
| development | 会将 process.env.NODE_ENV的值设为development。启用 NamedChunksPlugin 和 NamedModulesPlugin。 | 能让代码本地调试 运行的环境 |
| production | 会将 process.env.NODE_ENV的值设为production。 启用 FlagDependencyUsagePlugin, FlaglncludedChunksPlugin, ModuleConcatenationPlugin, NoEmitOnErrorsPlugin, OccurrenceOrderPlugin,SideEffectsFlagPlugin 和 UglifyJsPlugin. |
能让代码优化上线 运行的环境 |
生产环境和开发环境
运行指令:
- 开发环境:
webpack ./src/index.js -o ./build/built.js --mode=developmentwebpack会以./src/index.js为入口开始打包,打包后输出到./build/built.js整体打包环境,是开发环境 - 生产环境:
webpack ./src/index.js -o ./build/built.js --mode=productionwebpack会以./src/index.js为入口开始打包,打包后输出到./build/built.js整体打包环境,是生产环境
- 开发环境:
- 结论:
//resolve用来拼接绝对路径的方法 const {resolve} = require(‘path’);
module.exports = { //webpack配置 //入口起点 entry: ‘./src/index.js’, output:{ filename: ‘built.js’, //dirname nodejs的变量,代表当前文件的目录绝对路径 path:resolve(dirname,’build’) }, //loader的配置 module:{ rules:[ //详细loader配置 ] }, //plugins的配置 plugins:[ //详细plugins的配置 ], //模式 mode:’development’, // mode:’production’ } ```
