【webpack4.0】---webpack的基本使用(一)
一、初识webpack
1、什么是webpack?
WebPack可以看做是模块打包机:它做的事情是,分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等),并将其转换和打包为合适的格式供浏览器使用
2、webpack工作的方式
把你的项目当做一个整体,通过一个给定的主文件(如:index.js),Webpack将从这个文件开始找到你的项目的所有依赖文件,使用loaders处理它们,最后打包为一个(或多个)浏览器可识别的JavaScript文件
3、作用
模块化:让我们可以把复杂的程序细化为小的文件;
打包:可以把多个Javascript文件打包成一个文件,减少服务器压力和下载带宽。
转换:把拓展语言转换成为普通的JavaScript,让浏览器顺利运行。
优化:前端变的越来越复杂后,性能也会遇到问题,而WebPack也开始肩负起了优化
和提升性能的责任。
二、webpack与gulp、Grunt的区别
webpack和另外两个并没有太多的可比性,Gulp/Grunt是一种能够优化前端的开发流程的工具,而WebPack是一种模块化的解决方案,不过Webpack的优点使得Webpack在很多场景下可以替代Gulp/Grunt类的工具
三、webpack的打包流程
webpack是建立在module之上进行打包的
四、webpack基本配置
五、webpack4.0的安装
1、全局安装
cnpm install webpack webpack-cli -g
注意:不建议全局安装。
2、局部安装
npm init //初始化项目
cnpm install webpack webpack-cli -D // -D等价于--save-dev
3、webpack-cli的作用
可以让我们在命令行中正确的使用webpack 以及npx webpack 等命令 如果不安 装则无法使用
4、文件编译
npx webpack index.js
5、npx
npx :会帮助我们在当前目录下面的node_modules包中找到webpack进行使用
npx webpack -v //查看webpack版本号
npx info webpack //查看webpack以往的一些版本号
npx webpack <文件名称> //文件编译
六、预热:文件编译
1、webpack默认是基于webpack.config.js进行打包的,如果需要指定其他文件名称
进行打包可以按照如下这样书写
npx webpack --config <文件名称>
2、npm scripts
如果在npm scripts中使用webpack的情况下会优先在工程目录下面的 node_modules中找相关的依赖
如果我们的编译命令过于复杂那么我们可以在package.json中的scripts中进行简化
配置
{
"name": "myapp",
"version": "0.1.0",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build"
}
}
运行命令的时候只需要npm run <命令名称即可>
3、webpack打包环境
module.exports = {
mode:"production" //生产环境
model:"development"//开发环境
}
4、预热打包配置
1、npm init -y 生成一个node包
2、局部安装webpack
3、建立webpack.config.js
4、配置webpack.config文件
output:{
//占位符 满足线上地址的需求
publicPath:'html://cdn.com/'
}
七、什么是开发环境、测试环境、生产环境
1、开发环境:项目尚且在编码阶段,我们的代码一般在开发环境中 不会在生产环
境中,生产环境组成:操作系统 ,web服务器 ,语言环境。 php 。 数据库 等等
2:测试环境:项目完成测试,修改bug阶段
3:生产环境:项目数据前端后台已经跑通,部署在阿里云上之后,有客户使用,
访问,就是网站正式运行了。
三个环境也可以说是系统开发的三个阶段:开发->测试->上线
4:--save && --save-dev的区别
可分别将依赖(插件)记录到package.json中的dependencies和 devDependencies 下面。
dependencies下记录的是项目在运行时必须依赖的插件,常见的例如react jquery 等即及时项目打包好了、上线了,这些也是需要用的,否则程序无法正常执行
devDependencies下记录的是项目在开发过程中使用的插件,一旦项目打包发布、 上线了之后,devDependencies中安装的东西就都没有用了
如果模块是在开发环境中使用,那么我们安装依赖的时候需要--dev
飞机票:https://mp.weixin.qq.com/s/g6tUSLy0f40pmFnfO3QykA
【webpack4.0】---webpack的基本使用(一)的更多相关文章
- webpack4.0.1安装问题和webpack.config.js的配置变化
The CLI moved into a separate package: webpack-cli. Please install 'webpack-cli' in addition to webp ...
- [转]webpack4.0.1安装问题和webpack.config.js的配置变化
本文转自:https://blog.csdn.net/jiang7701037/article/details/79403637 The CLI moved into a separate packa ...
- webpack工具学习 构建简单vue项目(不依赖vue-cli) webpack4.0
目的用webpack构建简单前端项目 1.npm init (npm init -y) 形成package.json 2.npm install --save-dev webpack 形成 n ...
- 史上最走心webpack4.0中级教程——配置之外你应该知道的事
<webpack4.0各个击破系列>适合不满足于只会配置webpack但一时间又看不懂源码的中级读者.我没法保证这个系列是最好的,但至少能保证每一篇博文都跟那些Ctrl+C和Ctrl+V的 ...
- webpack4.0各个击破(1)—— html部分
webpack作为前端最火的构建工具,是前端自动化工具链最重要的部分,使用门槛较高.本系列是笔者自己的学习记录,比较基础,希望通过问题 + 解决方式的模式,以前端构建中遇到的具体需求为出发点,学习we ...
- webpack4.0各个击破(2)—— CSS篇
webpack作为前端最火的构建工具,是前端自动化工具链最重要的部分,使用门槛较高.本系列是笔者自己的学习记录,比较基础,希望通过问题 + 解决方式的模式,以前端构建中遇到的具体需求为出发点,学习we ...
- webpack4.0各个击破(3)—— Assets篇
目录 一. Assets资源的基本处理需求 二. webpack处理引用资源 2.1 资源打标 2.2 引用优化 2.3 sprites雪碧图合成 2.4 图片压缩及其他 webpack作为前端最火的 ...
- webpack4.0各个击破(4)—— Javascript & splitChunk
目录 一. Js模块化开发 二. Js文件的一般打包需求 三. 使用webpack处理js文件 3.1 使用babel转换ES6+语法 3.2 脚本合并 3.3 公共模块识别 3.4 代码分割 3.5 ...
- webpack4.0各个击破(5)—— Module篇
webpack4.0各个击破(5)-- Module篇 webpack作为前端最火的构建工具,是前端自动化工具链最重要的部分,使用门槛较高.本系列是笔者自己的学习记录,比较基础,希望通过问题 + 解决 ...
随机推荐
- 【九度OJ】题目1163:素数 解题报告
[九度OJ]题目1163:素数 解题报告 标签(空格分隔): 九度OJ 原题地址:http://ac.jobdu.com/problem.php?pid=1163 题目描述: 输入一个整数n(2< ...
- 【LeetCode】275. H-Index II 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址: https://leetcode.com/problems/h-index- ...
- Boost的反射库PFR
目录 目录 简介 使用方法 限制 总结 简介 Boost.PFR是一个Boost 1.75版本出的C++14的基础反射库,其使用非常简单,非常便捷,但是适用性也比较差,有很多的地方无法使用,适合比较简 ...
- MySQL 批量插入,如何不插入重复数据
1.insert ignore into 当插入数据时,如出现错误时,如重复数据,将不返回错误,只以警告形式返回.所以使用ignore请确保语句本身没有问题,否则也会被忽略掉=======>IN ...
- Saliency maps
目录 问题 细节 变量 扩展 代码 Deep Inside Convolutional Networks: Visualising Image Classification Models and Sal ...
- 解决Java保存到数据库中文乱码问题,加useUnicode=true&characterEncoding=UTF-8
Java保存到数据库中文乱码, 解决方法如下: 我们在连接MySQL数据库的时候一般都会在url后面添加useUnicode=true&characterEncoding=UTF-8,但是问什 ...
- Kafka集群安装Version1.0.1(自带Zookeeper)
1.说明 Kafka集群安装,基于版本1.0.1, 使用kafka_2.12-1.0.1.tgz安装包, 其中2.12是编译工具Scala的版本. 而且不需要另外安装Zookeeper服务, 使用Ka ...
- JZOJ 3296 Luogu P3296 [SDOI2013]刺客信条
前言 做法来自:@pzrpzr ,写一下!Orz pzr! 题目大意 \(n\) 个点的无根树,每个点有两个 \(0/1\) 权值,合适地安排节点在同构树中的顺序,使得前后对应的权值不同节点个数最小, ...
- 木棒poj1011
题目描述 乔治拿来一组等长的木棒,将它们随机地砍断,使得每一节木棍的长度都不超过50个长度单位. 然后他又想把这些木棍恢复到为裁截前的状态,但忘记了初始时有多少木棒以及木棒的初始长度. 请你设计一个程 ...
- CentOS7 安装mysql并解决安装慢的问题
0.centOS7 mini版安装及网络配置 //可从我的网盘保存下载,可用虚拟机安装 链接:https://pan.baidu.com/s/10_AHxN0DtJ75s1oFOaaZ3A 密码:ud ...