首先,来个官网文档对webpack的定义:
webpack 是代码编译工具,有入口、进口、loader 和插件。webpack 是一个用于古代 JavaScript 应用程序的动态模块打包工具。当 webpack 解决应用程序时,它会在外部构建一个依赖图(dependency graph),此依赖图对应映射到我的项目所需的每个模块,并生成一个或多个 bundle。
webpack 的外围价值就是前端源码的打包,行将前端源码中每一个文件(无论任何类型)都当做一个 pack ,而后剖析依赖,将其最终打包出线上运行的代码。

webpack 的四个外围局部:

  • entry 规定入口文件,一个或者多个
  • output 规定输入文件的地位
  • loader 各个类型的转换工具
  • plugin 打包过程中各种自定义性能的插件

那么,webpack在日常工作中,是如何配置的呢?

通常状况下,webpack的配置文件在我的项目内会分为:

  • webpack.common.js
  • webpack.dev.js
  • webpack.prod.js

别离代表专用配置,开发环境配置,线上环境配置。
接下来,将按这三个文件来解说如何配置,局部基础知识和要点会写在正文中,要晓得全副配置内容,倡议查看官网文档:https://www.webpackjs.com/con...

webpack.common.js:

const path = require('path')const HtmlWebpackPlugin = require('html-webpack-plugin')const srcPath = path.join(__dirname, '..', 'src')module.exports = {    entry: path.join(srcPath, 'index.js'),           //以该门路下的index.js作为构建的开始进入入口终点后,           //webpack 会找出有哪些模块和库是入口终点(间接和间接)依赖的    module: {        rules: [            {                test: /\.js$/,                loader: ['babel-loader'], //应用哪个loader来解决文件                include: srcPath,                exclude: /node_modules/                //test,include,exclude都是拿来匹配哪些文件须要被loader解决的,                //优先级是exclude > include > test            },            {                test: /\.css$/,                // loader 的执行程序是:从后往前                loader: ['style-loader', 'css-loader', 'postcss-loader']                 // 加了 postcss            },            {                test: /\.less$/,                // 减少 'less-loader' ,留神程序                loader: ['style-loader', 'css-loader', 'less-loader']            }        ]    },    plugins: [        new HtmlWebpackPlugin({            template: path.join(srcPath, 'index.html'),            filename: 'index.html'        })    ]}