webpack入门配置步骤详解

1、初始化

1、npm install webpack webpack-cli webpack-dev-server --g 全局安装必要的第三方插件

2、mkdir config dist src 新建三个文件夹

3、npm init -y 初始化package.json

1414921-20190806091125330-1178614008.png

4、在 src 文件夹中,新建 main.js;在 config 文件夹中,新建 webpack.dev.js

1414921-20190806091150745-451171605.png

配置webpack.dev.js

1414921-20190806091503989-1187613915.png

package.json加入快捷命令

1414921-20190806091809058-504245036.png

执行npm run dev

1414921-20190806091833533-658572794.png

此时可以看到 dist 文件夹下面已经有bundle.js

1414921-20190806092044925-145223339.png

这里特别注意下:文件目录中不要包含中文,否则会引起很多的问题

2、多文件入口

如果存在多文件入口,则需要1添加入口文件、2配置入口文件,3修改出口文件的filename[name].js

1414921-20190806092544867-889314084.png

执行npm run dev

1414921-20190806092712708-252859869.png

dist 文件夹中出现了同名的两个js文件

[name] 会根据入口文件的名称,打包成相同的名称,有几个入口文件,就打包几个文件

3、配置webpack-dev-server

作用:配置本地的服务器,它的基本配置是

1414921-20190806093436046-1430618397.png

这个时候如果执行npm run dev会报错,需要在package.json里配置

1414921-20190806093625992-1198197426.png

然后执行npm run server就可以跑起来了

1414921-20190806093712063-2091182317.png

我们可以填写下文件,看下输出效果
1、在dist文件夹下新建index.html,引入2个js文件

1414921-20190806093937306-815969658.png

2、在js文件中分别写点东西

1414921-20190806094101262-1978197069.png

1414921-20190806094138360-1052177930.png

3、再次执行npm run server,打开localhost:9000
1414921-20190806094240400-51727836.png

1414921-20190806094301829-1237101802.png

4、引入CSS

webpack 中的 loaders 是可以将浏览器无法识别的文件转化,比如可以把 SASS/LESS 文件的写法转换成 CSS,可以把ES6ES7转换成ES5,首先我们在src文件夹下创建index.css文件并在入口文件中引入:

1414921-20190806100727830-722850805.png

执行命令,发现报错

1414921-20190806095219144-1570590600.png

这是因为在webpack中想要打包css,通常需要加载 style-loadercss-loader 这2个加载器,它们的作用是:

  • css-loader:加载css文件
  • style-loader :动态创建style标签,塞到html的head标签里;

安装依赖:
cnpm install style-loader css-loader --save-dev

配置loaders

1414921-20190806100158518-863243220.png

执行命令,显示成功:

1414921-20190806100926428-2005634989.png

1414921-20190806100937174-81882614.png

5、插件--压缩JS

webpack内置 uglifyjs-webpack-plugin的插件,直接引入配置

1414921-20190806101321745-1721724565.png

再次执行命令,文件已被压缩

1414921-20190806102056023-827784813.png

6、插件--打包HTML

之前的HTML是我们手动写的,现在删除之前的JS引入,移动至src文件夹下面

1414921-20190806104422037-1030054596.png

现在的目标是:webpackhtml 自动引入js,并打包到 dist 文件夹下,这里就要引入 html-webpack-plugin
安装依赖: cnpm install --save-dev html-webpack-plugin
配置plugins:

1414921-20190806105845725-1194579294.png

执行命令,可以看到 dist 文件夹下面已经有打包好的html了

1414921-20190806113528649-883738272.png

7、SASS文件的打包

安装依赖:cnpm install node-sass sass-loader --save-dev

在原来的基础上,新增配置

1414921-20190806114535688-1199742693.png

新建sass文件
1414921-20190806115307159-1578925289.png

引入sass文件
1414921-20190806115327221-284338990.png

执行命令,效果生效:
1414921-20190806115523774-770395470.png

8、增加babel支持

babel主要是用于将es6/es7转为浏览器可识别的js
安装依赖:cnpm install --save-dev babel-core babel-loader babel-preset-env

配置加载器:
1414921-20190807095050886-1364888276.png

编写文件:
1414921-20190807092842001-1924914796.png

打包代码执行成功

番外话

webpack的核心概念就是,一切皆模块,从一个入口开始,不停的分析解析最终获取到一个浏览器可识别的js文件
核心是,解析浏览器无法识别的文件的loaders,帮助自动化打包构建的插件plaugins
剩下的就是按要求进行配置的

部分基础知识点

__dirname表示当前文件所在的目录
__filename表示正在执行脚本的文件名
path.resolve([...paths]) 可以将路径或者路径片段解析成绝对路径,...paths是传入的字符串参数,是路径序列或者路径片段

本文内容主要摘自于 “https://www.jianshu.com/p/6712e4e4b8fe

转载于:https://www.cnblogs.com/webhmy/p/11304423.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值