什么是webpack
-
本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)。当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个 bundle。
-
webpack 所有构建工具都是基于node.js平台运行的~模块化默认采用common.js。
-
在开始前你需要先理解四个核心概念:
-
1、入口 (entry)
可以通过在 webpack 配置中配置 entry 属性,来指定一个入口起点(或多个入口起点)。默认值为 ./src。
接下来我们看一个 entry 配置的最简单例子:
const { resolve } = require('path'); //node的内置方法path(处理文件路径)
module.exports = {
entry: './path/to/my/entry/file.js'
};
- 2、输出 (output)
output 属性告诉 webpack 在哪里输出它所创建的 bundles,以及如何命名这些文件,默认值为 ./dist。基本上,整个应用程序结构,都会被编译到你指定的输出路径的文件夹中。你可以通过在配置中指定一个 output 字段,来配置这些处理过程:
const { resolve } = require('path'); //node的内置方法path(处理文件路径)
module.exports = {
output: {
path: resolve(__dirname, 'dist'),
filename: 'my-first-webpack.bundle.js'
}
};
- 3、loader
loader 可以将所有类型的文件转换为 webpack 能够处理的有效模块
配置中,对一个单独的 module 对象定义了 rules 属性,里面包含两个必须属性:test 和 use。这告诉 webpack 编译器
不同资源配置不同loader配置
module.exports = {
module: {
rules: [
{ test: /\.txt$/, use: 'raw-loader' }
]
}
}
- 4、插件 (plugins)
loader 被用于转换某些类型的模块,而插件则可以用于执行范围更广的任务。插件的范围包括,从打包优化和压缩,一直到重新定义环境中的变量
想要使用一个插件,你只需要