webpack4 入门最简单的例子介绍


Posted in Javascript onSeptember 05, 2018

webpack在目前来说应该是前端用的比较多的打包工具了,那么对于之前没有接触过这块的该怎么办呢?答案很明显嘛,看资料,查文档,自己去琢磨,自己去敲一敲,跑一跑;

Webpack是当下最热门的前端资源模块化管理和打包工具,它可以将很多松散的模块按照依赖和规则打包成符合生产环境部署的前端资源,还可以将按需加载的模块进行代码分割,等到实际需要的时候再异步加载。

webpack和Grunt以及Gulp相比有什么特性

Gulp/Grunt是一种能够优化前端的开发流程的工具,而WebPack是一种模块化的解决方案,不过Webpack的优点使得Webpack可以替代Gulp/Grunt类的工具。

Grunt和Gulp的工作方式是:在一个配置文件中,指明对某些文件进行类似编译、组合、压缩等任务的具体步骤。

webpack的工作方式是:把你的项目当做一个整体,通过一个给定的主文件(如:index.js),Webpack将从这个文件开始找到你的项目的所有依赖文件,使用loaders处理它们,最后打包为一个浏览器可识别的JavaScript文件。

那么,这边我将以一个最基础的例子来将这个流程跑一边,包括过程中会遇到哪些问题,怎么解决的,也会一一奉上;

第一步:

我们需要安装npm,这个只要你有NodeJS运行环境的肯定会有的;这边这个块也就不作叙述

第二步:

我们接下来会选择在项目目录中进行所有的安装和操作,不去选择全局安装;

在电脑任意盘中新建一个项目文件夹,如:webpackdemo

 webpack4 入门最简单的例子介绍webpack4 入门最简单的例子介绍

接下来我们通过cmd进入到这个项目文件夹下,并输入执行npm init,回车,进行初始化:

webpack4 入门最简单的例子介绍

接下来,对于package name之类的配置项,我们完全选择直接回车,到底!

webpack4 入门最简单的例子介绍

到这一步,就OK了!

此时我们的项目文件夹里就多了一个文件:package.json

第三步:

既然要使用webpack进行打包,那么我们就要来安装webpack了,起初我们就说过都在项目文件夹里完成,不做全局安装;那么接下来输入npm install --save-dev webpack,回车进行安装:

webpack4 入门最简单的例子介绍

此时我们的项目文件夹,已经又多了一个文件夹和一个json文件:

webpack4 入门最简单的例子介绍

第四步:

我们现在可以开始写自己的项目了,那么我这边也就按通常各位大牛分享的例子来写,首先,在项目文件夹下,新建两个文件加app和public;

app文件夹中写入test.js和main.js;public文件夹中写入index.html;

借鉴一下别人的例子:

index.html

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="utf-8">
 <title>Webpack demo</title>
</head>
<body>
 <div id='root'></div><br><br> 
<!--引入打包之后的文件-->
<script src="bundle.js"></script> 
</body>
</html>

test.js

<!--写入js,创建div元素,写入一句话,并且导出test.js这个模块--><br>module.exports = function() {

 var test= document.createElement('div');

 test.textContent = "Hi there and testing!";

 return test;

};

main.js

<!--导入test模块,将内容添加到#root这个div中--><br>var test= require('./test.js');

document.getElementById('root').appendChild(test());

第五步:

按道理,现在已经可以进行打包处理了,最后的结果就是将main.js作为主入口进行操作,最后在public文件夹中生成一个打包OK之后的文件:bundle.js;然后我们打开index.html文件就会在页面显示我们刚才的那句话了;

但是,忽略了一个问题,那就是我们的配置文件怎么办呢?都在命令行去操作吗?这肯定是很麻烦且不赞成的,那么我们就在项目目录下再建一个文件:webpack.congfig.js,在里面写入配置文件:

module.exports = {
 entry: __dirname + "/app/main.js",//入口文件
 output: {
 path: __dirname + "/public",//打包后的文件存放目录
 filename: "bundle.js"//打包后输出文件的文件名
 }
}

这样我们就可以通过node_modules/.bin/webpack开始运行了;

问题来了:

1、报错!

webpack4 入门最简单的例子介绍

解决方式:node_modules\.bin\webpack "/"改成"\"

2、还是不行!

webpack4 入门最简单的例子介绍

还好不是原来的错误,那么这个是什么意思呢?

回看前面的截图

webpack4 入门最简单的例子介绍

倒数第二行,我们会发现我们安装的webpack的版本是 4 的,那么在4中,默认不需要配置文件(它吸收了Parcel的思想,零配置);既然思想都不一样了,是不是我们前面这么做就要去掉,重来,换成4的做法呢?很显然不愿意了,毕竟做到现在了,那么我就根据步骤一步一步的改吧;

再看这一步:

webpack4 入门最简单的例子介绍

我们顺着来,输入yes,回车,进行安装webpack-cli

安装完,已经自动运行了node_modules\.bin\webpack;

3、新的警告和报错!

心态爆炸了?不要紧,很快就要OK了!

webpack4 入门最简单的例子介绍

看前几行,是正确的运行结果,但是,查看项目文件夹时,并不是这样,原因就在后面那几行黄色,红色的警告和报错!

首先看警告,简单点,意思就是需要设置模式:4 无需配置文件,但是没说不要设置模式,模式分为两个:生产模式和开发模式;只需要--mode标记一下就OK了!

再看报错,什么意思呢,其实就是他需要一个src 文件夹,其实这个src文件夹就是我们之前的app文件夹,那么我们改下名字,app改成src;

ok,再来接受一次打击吧!

4、运行node_modules\.bin\webpack --mode development之后,还有一行错误!

webpack4 入门最简单的例子介绍

很熟悉的报错,刚才给我们报过,刚才那么改貌似没用,这下问题在哪里呢?我们打开package.json看下;

webpack4 入门最简单的例子介绍

第5行,"main":"index.js",是不是已经知道了?那我们把src里的入口文件main.js改成index.js,再运行!

成功!!!

webpack4 入门最简单的例子介绍

最后我们打包之后生成了一个新的文件main.js,并且是在一个新的文件夹dist里;

对于我们之前的webpack.congfig.js文件,完全不用去在意,因为webpack 4 默认不需要配置文件呀!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
判断目标是否是window,document,和拥有tagName的Element的代码
May 31 Javascript
JS实现一个按钮的方法
Feb 05 Javascript
EasyUi datagrid 实现表格分页
Feb 10 Javascript
JavaScript中数组的合并以及排序实现示例
Oct 24 Javascript
JavaScript中的时间处理小结
Feb 24 Javascript
JavaScript判断数组重复内容的两种方法(推荐)
Jun 06 Javascript
ionic 自定义弹框效果
Jun 27 Javascript
node跨域请求方法小结
Aug 25 Javascript
Angular学习教程之RouterLink花式跳转
May 03 Javascript
JS实现可针对算术表达式求值的计算器功能示例
Sep 04 Javascript
JavaScript交换变量的常用方法小结【4种方法】
May 07 Javascript
vue tab切换,解决echartst图表宽度只有100px的问题
Jul 19 Javascript
Vuejs2 + Webpack框架里,模拟下载的实例讲解
Sep 05 #Javascript
JS实现点击拉拽轮播图pc端移动端适配
Sep 05 #Javascript
vue中使用heatmapjs的示例代码(结合百度地图)
Sep 05 #Javascript
解决vue点击控制单个样式的问题
Sep 05 #Javascript
浅谈webpack4.x 入门(一篇足矣)
Sep 05 #Javascript
vuejs点击class变化的实例
Sep 05 #Javascript
jQuery滑动效果实现方法分析
Sep 05 #jQuery
You might like
轻松入门: 煮好咖啡的七个诀窍
2021/03/03 冲泡冲煮
解析PHP中$_FILES的使用以及注意事项
2013/07/05 PHP
实用的简单PHP分页集合包括使用方法
2013/10/21 PHP
php数组添加与删除单元的常用函数实例分析
2015/02/16 PHP
php实现文件上传及头像预览功能
2017/01/15 PHP
js模拟弹出效果代码修正版
2008/08/07 Javascript
JQuery 绑定事件时传递参数的实现方法
2009/10/13 Javascript
javascript或asp实现的判断身份证号码是否正确两种验证方法
2009/11/26 Javascript
js数组操作学习总结
2013/11/04 Javascript
jQuery 顶部导航跟随滚动条滚动固定浮动在顶部
2014/06/06 Javascript
jQuery中slice()方法用法实例
2015/01/07 Javascript
dul无法加载bootstrap实现unload table/user恢复
2016/09/29 Javascript
js 中获取制定的cook信息实现方法
2016/11/19 Javascript
AngularJS自定义服务与fliter的混合使用
2016/11/24 Javascript
使用JavaScript实现alert的实例代码
2017/07/06 Javascript
vue中父子组件注意事项,传值及slot应用技巧
2018/05/09 Javascript
使用 electron 实现类似新版 QQ 的登录界面效果(阴影、背景动画、窗体3D翻转)
2018/10/23 Javascript
vue 实现v-for循环回来的数据动态绑定id
2019/11/07 Javascript
Vue实现简单的跑马灯
2020/05/25 Javascript
[00:35]DOTA2上海特级锦标赛 MVP.Phx战队宣传片
2016/03/04 DOTA
利用Anaconda完美解决Python 2与python 3的共存问题
2017/05/25 Python
numpy数组拼接简单示例
2017/12/15 Python
python查看模块,对象的函数方法
2018/10/16 Python
Django 多表关联 存储 使用方法详解 ManyToManyField save
2019/08/09 Python
Python导入模块包原理及相关注意事项
2020/03/25 Python
python中rb含义理解
2020/06/18 Python
Rentalcars.com中国:世界上最大的在线汽车租赁服务
2019/08/22 全球购物
英国领先的独立时装店:Van Mildert
2019/10/28 全球购物
澳大利亚领先的时尚内衣零售商:Bras N Things
2020/07/28 全球购物
《真想变成大大的荷叶》教学反思
2014/04/14 职场文书
《金孔雀轻轻跳》教学反思
2014/04/20 职场文书
公司周年庆活动方案
2014/08/25 职场文书
求职信格式范文
2015/03/19 职场文书
2015年12.4全国法制宣传日活动总结
2015/03/24 职场文书
工会经费申请报告
2015/05/15 职场文书
Python Matplotlib绘制等高线图与渐变色扇形图
2022/04/14 Python