0基础手把手教你搭建webpack运行打包项目(未完待续)

  这些天在项目之余的时间学习了webpack打包项目的东西,非常荣幸的找到一些大神的文章来学习,死劲嚼了几天,终于略知一二。在以后的工作上还需继续学习,下面我将分享我这几天学到的一点东西,希望能让我一个还不算入门webpack的小白领大家入门。本文主要还是摘抄大神的文章加上自己手动的一些过程记录,不喜勿喷,谢谢!开车了!!!开车了!!!

  一、什么是Webpack

  webpack 是一个现代 JavaScript 应用程序的模块打包器(module bundler)。当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后将所有这些模块打包成少量的 bundle - 通常只有一个,由浏览器加载。

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

  

  二、webpack的使用

  1项目初始化

  webpack安装完成后,我们紧接着输入命令来初始化项目,初始化命令:npm init; 在初始化的过程中,终端会问你一系列诸如项目名称,项目描述,作者等信息,不过不用担心,如果你不准备在npm中发布你的模块,这些问题的答案都不重要,回车默认即可。

  这时候,目录中会生成一个package.json文件,这是一个标准的npm说明文件,里面蕴含了丰富的信息,包括当前项目的依赖模块,自定义的脚本任务等等。

  2、安装webpack

  新建一个项目目录,打开终端进入新建的目录输入命令安装webpack:

  全局安装:npm inatsll webpack -g;     跟随目录安装:npm inatsll --save-dev webpack;

  3、项目构建

  在根目录新建app和public两个目录与及一个配置文件webpack.config.js,app文件夹用来存放原始数据和我们将写的JavaScript模块,public文件夹用来存放之后供浏览器读取的文件(包括使用webpack打包生成的js文件以及一个index.html文件),接着我们在app目录下分别新增main.js文件和project.js文件,在public目录下新增index.html文件。

  目录结构如图所示:

  

  下面我们看看每个文件的代码,与及运行的一些过程结果:

  index.html文件:

  

  main.js 文件:

  

  project.js文件:

  

  webpack.config.js文件:这里的配置是指定main.js文件是我们唯一的入口文件,而bundle.js文件是我们打包后输出的文件名,与及我们打包后存放的路径。

  置于entry和output这写webpack的属性词代表什么,我在这里就不做解释了,可以去webpack中文文档学习,链接:https://doc.webpack-china.org/concepts/  

  

  package.json文件:

  

  各文件配置好后,我们在命令行输入:npm start, 这是项目就开始打包文件了:

  

  我们可以看到webpack把我们的main.js文件和project.js文件进行了编译,编译完成后我们可以发现在public目录下自动生成了一个编译后的bubundle.js文件。然后我们就可以在浏览器打开我们的index.html文件了,并且能正常打开。如图所示:

  

  恭喜你,现在你已经学会了webpack最基础的打包方式。

  

  三、稍微的进阶一下

  1、使用webpack构建本地服务

  构建本地服务之后,浏览器会监听你代码的修改,并且自动刷新更改的结果。接下来我们就安装这个依赖包,

  服务依赖包:npm install --save-dev webpack-dev-server, devserver作为webpack配置选项中的一项,以下是它的一些配置选项,更多配置可参考

  

  把这些命令加到webpack的配置文件中,现在的配置文件webpack.config.js如下所示

  

  注意了哈,package.json这里配置有个小细节,就是我们平时run代码的时候大多数是输入:npm run dev, 那是因为在package.json里面配置了如图所示:

  

  如果用默认的server来配置的话,run项目时直接输入:run server, 即可。另外,当我们的port属性不设置时,默认的端口号是:8080,但是上面我们改为8088了,如图所示:

  

  2、Loaders的安装和配置  

  Loaderswebpack提供的最激动人心的功能之一了。通过使用不同的loaderwebpack有能力调用外部的脚本或工具,实现对不同格式的文件的处理,比如说分析转换scss为css,或者把下一代的JS文件(ES6,ES7)转换为现代浏览器兼容的JS文件。

  Loaders需要单独安装并且需要在webpack.config.js中的modules关键字下进行配置,Loaders的配置包括以下几方面:

  • test:一个用以匹配loaders所处理文件的拓展名的正则表达式(必须)
  • loader:loader的名称(必须)
  • include/exclude:手动添加必须处理的文件(文件夹)或屏蔽不需要处理的文件(文件夹)(可选);
  • query:为loaders提供额外的设置选项(可选)

  

  3、babel的配置

  Babel其实是一个编译JavaScript的平台,它的强大之处表现在可以通过编译帮你达到以下目的:

  • 使用下一代的JavaScript代码(ES6,ES7...),即使这些标准目前并未被当前的浏览器完全的支持;
  • 使用基于JavaScript进行了拓展的语言;

  Babel的安装与配置

  Babel其实是几个模块化的包,其核心功能位于称为babel-core的npm包中,webpack可以把其不同的包整合在一起使用,对于每一个你需要的功能或拓展,你都需要安装单独的包(用得最多的是解析Es6的babel-preset-es2015包)。

  安装babel依赖:npm install --save-dev babel-core babel-loader babel-preset-es2015   (这里是连续安装了好几个依赖包),下面我们进行配置,代码如图所示

  



原文地址:https://www.cnblogs.com/Jacky-MYD/p/7780115.html

时间: 2024-11-01 04:49:53

0基础手把手教你搭建webpack运行打包项目(未完待续)的相关文章

java基础二 <流程控制语句, 方法,数组,java内存结构> 未完待续...

话不多说,直接上干货... 一:流程控制语句 break :  结束当前循环 continue:  结束本次循环,继续下次循环 return:  结束方法 二: 方法 1.方法的特点: 定义在类中的,有特定功能的函数. 方法与方法之间是平级的,不能在方法中定义方法.方法只能够调用方法. 2.方法的重载: 在同一类中,方法名相同,参数列表不同(个数不同,对应的类型不同). 与返回值类型无关. 对应的类型不同的话,与顺序有关系 与形式参数的变量名无关 3.方法的重写: 子类可继承父类中的方法,而不需

大数据江湖之即席查询与分析(下篇)--手把手教你搭建即席查询与分析Demo

上篇小弟分享了几个"即席查询与分析"的典型案例,引起了不少共鸣,好多小伙伴迫不及待地追问我们:说好的"手把手教你搭建即席查询与分析Demo"啥时候能出?说到就得做到,差啥不能差人品,本篇只分享技术干货,目的只有一个,就是让每一个伙伴都能根据本篇向导搭建出一个"即席查询与分析Demo". 为了让各位伙伴能够尽快上手体验,所选案例就以上一篇中的"机动车缉查布控即席查询与分析"为例,上篇我们已经比较详尽的分析了用户需求,没好好听课的

手把手教你搭建LyncServer2013之安装持久聊天服务器(十三)

这一节中,不得不说的就是持久聊天服务器,为Lync  Server 2013新建的一个角色,在企业版中,需要单独部署,不能和其他服务器并置,WAC服务器也是如此,因在前面的拓扑中未定义持久聊天服务器,下面我们开始新建拓扑并进行发布了,在前端服务器上打开拓扑生成器,并下载当前拓扑信息 右键持久聊天池,新建持久聊天池 输入FQDN并选择"单计算机池" 我后续想测试下合规性,所以这里选了启用合规性,可以根据自己组织内部需求进行选择,输入显示名称 定义SQL Server存储,我这里仍然使用镜

手把手教你搭建LyncServer2013之部署边缘服务器(七)

在前面的拓扑新建中我们已经加入了Lync边缘的单计算机池,今天我们就开始部署Lync边缘供外部用户访问了,首先来到Lync边缘这台服务器,安装服务器所需组件,命令如下: Add-WindowsFeature Web-Asp-Net45,Web-Mgmt-Tools,Windows-Identity-Foundation,Telnet-Client -source d:\sources\sxs -restart 在安装Lync边缘Lync组件之前,我们需要修改Lync边缘服务器的DNS后缀名称,如

手把手教你搭建LyncServer2013之安装反向代理服务器TMG(八)

首先修改反向代理服务器的DNS后缀为iSusan.cn 放入TMG安装光盘开始安装TMG 点击"运行准备工具"安装TMG所需组件 这里选择安装"Forefront TMG服务和管理" 勾选"启用Forefront TMG安装向导" 安装进程开始安装TMG核心组件 点击"添加"按钮添加内部网络适配器 点击"添加适配器" 选择"Lan"这块内部网卡 添加内部网卡会自动加入内部网络IP地址 下

手把手教你搭建caffe及手写数字识别(全程命令提示、纯小白教程)

手把手教你搭建caffe及手写数字识别 作者:七月在线课程助教团队,骁哲.小蔡.李伟.July时间:二零一六年十一月九日交流:深度学习实战交流Q群 472899334,有问题可以加此群共同交流.另探究实验背后原理,请参看此课程:11月深度学习班. 一.前言 在前面的教程中,我们搭建了tensorflow.torch,教程发布后,大家的问题少了非常多.但另一大框架caffe的问题则也不少,加之caffe也是11月深度学习班要讲的三大框架之一,因此,我们再把caffe的搭建完整走一遍,手把手且全程命

手把手教你搭建LyncServer2013之安装Office Web App服务器(十一)

因为Lync2013需要安装独立的Office Web App服务来体统OneNote和PPT共享用,而在Lync2010中,PPT共享功能默认集成在Lync前端服务器中,下面开始部署Office Web Apps服务器了 首先安装Office Web App服务器的必备功能组件,命令如下 Add-WindowsFeature?Web-Server,Web-Mgmt-Tools,Web-Mgmt-Console,Web-WebServer,Web-Common-Http,Web-Default-

手把手教你搭建FastDFS集群(上)

手把手教你搭建FastDFS集群(上) 本文链接:https://blog.csdn.net/u012453843/article/details/68957209 FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下载)等,解决了大容量存储和负载均衡的问题.特别适合以文件为载体的在线服务,如相册网站.视频网站等等. FastDFS为互联网量身定制,充分考虑了冗余备份.负载均衡.线性扩容等机制,并注重高可用.高性能等指标,使用

手把手教你搭建LyncServer2013之准备篇(一)

这次实验的拓扑结构如下: 首先准备AD域,把DC这台服务器提升为域服务器,在这里,域服务器的安装就不上图了,DNS会随域控制器的安装一起安装,这次安装的Lync版本为Lync Server 2013,规划的Lync内部WEB地址和外部WEB地址一样,都为pool01.iSusan.cn,而两台Lync前端做为DNS轮询负载,所以在DNS下需要加入如下A记录: 192.168.137.12 pool01.iSusan.cn 192.168.137.13 pool01.iSusan.cn 192.1