
从一个空文件夹开始进行配置
1、新建文件夹webpack,在该文件夹下新建src文件夹,并在src文件夹下新建index.js,将此作为我们打包的入口文件
2、在webpack文件夹下,执行 npm init -y 命令,快速初始化一个package.json文件
3、在webpack文件夹下,安装webpack。 npm i webpack webpack-cli --save-dev
4、可以在index.js文件夹中写一个简单的function,并且新增一个json文件,将json文件引入进index.js中,这样的话,两个文件就产生了依赖关系
5、执行命令webpack ./src/index.js -o ./dist/bundle.js -- mode=development webpack 入口文件路径 -o 出口文件路径 --mode=打包模式
打包模式有三个,development(开发环境下打包),production(生产环境下打包),和none(不设置打包模式) 设置模式为生产环境的话,打包出来的文件体积就更小。 因为开发模式下打包,打包出的文件中会有很多的注释和空格,生产环境下则没有
6、执行完上一步命令,即可看到我们的两个文件被打包成了一个js文件的形式
7、可以在src文件夹下再新建一个index.html文件,然后将打包出来的js文件引入进去,在浏览器中运行,就可以看到我们在index.js中打印的东西了
设置配置文件进行配置
let path = require("path"); // 引入node中的path模块// 这个是将打包后的文件自动引入到html页面中去,使用前要先`npm i html-webpack-plugin`let HtmlWebpackPlugin = require("html-webpack-plugin");// 引入完成后,HtmlWebpackPlgin是一个方法,我们需要去调用它// 1、先用module.exports导出配置。module.exports = {// 入口文件entry: "./src/index.js",// 出口文件output: {// 出口文件名称filename: "bundle.js",// 出口文件地址,要配为绝对路径path: path.resolve(__dirname, "dist")},// 设置开发模式mode: "development",// loader的配置,放在module中module: {// 对某个格式的文件进行转换处理rules: [{test: /\.css$/, // 匹配的文件后缀,用正则来表示use: [// loader的配置是有顺序的,是从下往上的"style-loader", // 将转换完的js样式插入到style标签中"css-loader", //将css文件转换为js], // 针对这种类型的文件,用什么loader来转换。},{test: /\.(png|jpg|gif|jpeg)$/,// 图片小于8kb,base64内联处理,可以减少请求数量,但也会导致提交变大use: {loader: "url-loader",options: {limit: 8 * 1024,esModule: false,// 打包后文件名字// [hash.10]取图片hash的前10位// [ext] 取图片文件的扩展名name: "[hash:10].[ext]",// outputPath: "image/"},}},{test: /\.html$/,loader: "html-loader"}]},// 插件配置plugins: [new HtmlWebpackPlugin({template: './src/index.html' // 告诉它html的位置。加上这个之后,打包后的文件夹中会有index.html文件})]}// 整个webpack是用node来做的,node中有一个path模块,它可以获取到当前目录是什么目录// url-loader// 可以实现file-loader的一切功能。// 会把图片转化成base64的字符串。// 好处:不用额外的请求一个图片的地址// 坏处:图片大。js文件大,会导致加载js的时间很长,一开始很长的时间,页面上什么东西都显示不出来// 最佳方式:用url-loader打包8kb以下的图片,节约http请求
