webpack基础用法

webpack是许多前端工作者都会接触的一项技术,它对于代码的优化效果是毋庸置疑的,但是其繁杂的操作对于初入前端的小白无疑是非常困扰的,今天就来讲一下webpack基础的引入和使用。

基础概念

webpack是现代JavaScript应用程序的 静态模块打包器。

当webpack处理应用程序时,它会把一个巨大的文件分别打包成一个或者多个bundle从而实现代码的优化,毕竟大部分优化的过程都是实现从繁到简的过程。

一,安装

首先要确保你的电脑上具备nodejs的环境,之后通过 win+r 输入 cmd 转到控制台(这个控制台打开就暂时不要关了后续还会用到),输入如下代码

md mypack
//创建一个名为mypack的文件夹

cd mypack
// 进入你的项目目录 mypack目录可以随意自己建立
 
npm init  
//  初始化项目文件夹 会创建一个package.js
 
npm i webpack webpack-cli -D
//安装wewebpack 和 webpack-cli

好了我们就有了如下的文件

之后在根目录 mypack 下创建一个src文件夹

然后在src文件夹下创建两个名为 header.js index.js JavaScript 文件

header.js内容如下

var elem = document.createElement("div");//创建一个节点
elem.innerHTML = "hello,webpack";//设置内容
export default elem;//导出节点

index.js内容如下


import elem from "./header.js";//导入节点
document.body.appendChild(elem);//插入到页面

好了,现在我们就有了一个最基础的webpack打包程序了,在 cmd 控制台输入如下代码

cd /mypack //转到mypack文件夹


C:\myback>npx webpack
//输入完后根目录会生成一个dist文件,文件里会有一个main.js

之后可以在 dist 文件夹下新建一个html页面检查一下我们的成果,在 body 下方插入

<script src="./main.js"></script>

再打开新建的文件我们就可以在页面上看到 “hello,webpack”的字样了。

二,实用配置文件

在文件夹mypack之下新建一个webpack.config.js的文件(一定要为这个名字不能随意改名)

之后在该文件内写如下代码


module.exports = {    // node中导出模块
    entry: "./src/index.js",// 指定文件的入口
    output: {               //出口
        filename: "main.js",// 定义文件名
        path: __dirname + "dist", // 定义文件夹  // __dirname获取当前目录
    },
    mode: "production", //产品模块
};

cmd控制台中执行npx webpack命令实现打包。

三,使用webpack-dev-server 重启服务器进行更新

cmd控制台输入如下命令

npm i webpack-dev-server  html-webpack-plugin  -D 

在根目录mypack文件夹下创建一个public文件夹存储公共数据,并在public文件夹下建立一个index.html的文件 

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>index</title>
</head>

<body>
  
</body>

</html>

在我们最一开始自动生成的三个文件中选中名为package.json的文件在里面的script里面添加如下代码


"scripts": {
        "build": "webpack",
        "serve": "webpack serve",
        "test": "echo \"Error: no test specified\" && exit 1"
},

webpack.config.js配置文件中导入插件


const HtmlWebpackPlugin = require("html-webpack-plugin");

然后实例化插件plugins

module.exports = {    // node中导出模块
    entry: "./src/index.js",// 指定文件的入口
    output: {               //出口
        filename: "main.js",// 定义文件名
        path: __dirname + "dist", // 定义文件夹  // __dirname获取当前目录
    },
    plugins: [ // 实例化vue插件
        new HtmlWebpackPlugin({//指定模板
            template: "./public/index.html",
        }),
    ],
    mode: "production", //产品模块
};

然后添加本地服务设置devserver

module.exports = {    // node中导出模块
    entry: "./src/index.js",// 指定文件的入口
    output: {               //出口
        filename: "main.js",// 定义文件名
        path: __dirname + "dist", // 定义文件夹  // __dirname获取当前目录
    },
    plugins: [ // 实例化vue插件
        new HtmlWebpackPlugin({//指定模板
            template: "./public/index.html",
        }),
    ],
    mode: "production", //产品模块
    devServer: {
        open: true, //打开浏览器
        host: "localhost", //本地域名
        port: 8080, //端口号
        hot: true, //热加载
    },
};

最后在cmd控制台输入npm run serve 页面就可以显示啦。

四,各式各样的加载器(loader)

加载器让webpack有了处理更多其他格式文件的能力

style-loader:把插入style标签

css-loader:把css插入到style中并加载css

cmd控制台中输入:

npm i style-loader css-loader -D

 在webpack.config.js中添加module模块:

module.exports = {    // node中导出模块
    entry: "./src/index.js",// 指定文件的入口
    output: {               //出口
        filename: "main.js",// 定义文件名
        path: __dirname + "dist", // 定义文件夹  // __dirname获取当前目录
    },
    plugins: [ // 实例化vue插件
        new HtmlWebpackPlugin({//指定模板
            template: "./public/index.html",
        }),
    ],
    module:{
		// 规则
		rules:[
			{
			//测试.css文件结尾
			test:/\.css$/,
			// 使用两个loader加载器
			use:["style-loader","css-loader"],
			
			}
		]
	},
    mode: "production", //产品模块
    devServer: {
        open: true, //打开浏览器
        host: "localhost", //本地域名
        port: 8080, //端口号
        hot: true, //热加载
    },
};

猜你喜欢

转载自blog.csdn.net/xianyus4mA/article/details/122202559