1.webpack概念:
webpack是一个静态模块打包机,webpack处理应用程序时,把一个项目当作整体,通过一个给定的主文件开始找到所有的依赖文件,构建一个依赖关系图(这个依赖关系图包含应用程序需要的每个模块),然后使用loaders处理它们,最后打包成一个或多个浏览器可识别的js文件。
2.四个概念核心:
1.入口 (entry):
入口:指示webpack应该使用哪个模块,来作为构建内部依赖关系图的开始。进入入口起点后,webpack会找出这个入口起点的所有依赖的模块和库。
例子: module.exports = { entry: './path/index.js' };
2.出口(output):
出口:告诉webpack在哪里输出它所创建的bundles,以及如何命名这些文件。
例子: module.exports = { entry: './path/index.js', output: { path: path.resolve(__dirname, './dist'), filename: 'my-first-webpack.bundle.js' } };
3.loader:
loader:webpack本身只能理解js,loader就是将所有类型的文件转换为webpack能够处理的模块,然后让webpack去处理这些文件。
loader属性:
test :标识出应该被对应的 loader进行转换的某个或某些文件
use :进行转换时,应该使用哪个 loader
例子:const config = { output: { filename: 'index.bundle.js' }, module: { rules: [ { test: /\.css$/, use: 'css-loader' } ] } };
注意:对一个单独的 module 对象定义了 rules 属性,里面包含两个必须属性:test 和 use
4.插件(plugins):
插件:扩展weboack的功能,执行范围更广的任务,可以用来处理各种各样的任务。
例子: const config = { module: { rules: [ { test: /\.txt$/, use: 'raw-loader' } ] }, plugins: [ new HtmlWebpackPlugin({template: './src/index.html'}) ] };