webpack图解-学习笔记
文章目录
- webpack图解-学习笔记
- webpack与vuecli关系
- 为什么要打包?
- 什么是webpack?
- webpack-dev-server
- 手动配置文件
- 把打包后的js文件整合到html中
- 项目发布
webpack图解-学习笔记
webpack与vuecli关系
- vuecli基于webpack建构的,有一些配置还需要直接使用webpack的配置项
- 要完全掌握vuecli,必须掌握webpack
- vuecli的配置项较少,若要使用webpack的配置项,则要用
configureWebpack
- vuecli启动项目,实际上启动的是
webpack-dev-server
为什么要打包?
- 项目分2种: 企业级项目,互联网项目
- 企业级项目:jsp, asp, (写好页面,引入js,css,img)完了直接部署
- 互联网项目:尽量减少加载时间,提高用户体验,需要打包
- 打包:文件压缩(注释,代码压成一行)
什么是webpack?
- 打包工具 还有gulp grant
- 从项目入口文件开始,装载转换所有文件,优化处理文件,生成最终发布文件
- 重要概念:入口(main.js),出口(dist),装载器loader,plugin.
- 生成package.json
npm init -y
cnpm i -S webpack webpack-cli
(可通过命令行操作)- 零配置: 没有webpack.config.js依然可以打包
- webpack4可以使用零配置 不用配置文件webpack.config.js
- 若指定了
webpack.config.js
文件,就不会再使用零配置 - npx: 可以直接运行node_modules中的包
npx webpack
或
package.json
中加"dev": "webpack-dev-server"
然后直接npm run dev
- webpack默认可以打包压缩项目,零配置
//package.json
{"name": "01","version": "1.0.0","description": "- vuecli基于webpack建构的,有一些配置还需要直接使用webpack的配置项\r - 要完全掌握vuecli,必须掌握webpack","main": "index.js","scripts": {"test": "echo \"Error: no test specified\" && exit 1","dev": "webpack-dev-server"},"keywords": [],"author": "","license": "ISC","dependencies": {"webpack": "^4.43.0","webpack-cli": "^3.3.12","webpack-dev-server": "^3.11.0"},"devDependencies": {"html-webpack-plugin": "^4.3.0"}
}
webpack-dev-server
- 把前端当作一个http容器访问 前后分离标志
cnpm i -S webpack-dev-server
- 启动前端服务:
npx webpack-dev-server
- 根目录
手动配置文件
- webpack:
webpack.config.js
- vuecli:
vue.config.js
官网链接:https://cli.vuejs.org/zh/
webpack.config.js文件
//自定义webpack
let path = require('path'); //path node
let HtmlWebpackPlugin = require("html-webpack-plugin");module.exports = { //node模块化的写法entry: "./src/index.js", //入口mode: 'development', //开发 发布productionoutput: { //出口filename: "index.js", //指定输出名字//node __dirname 当前目录path: path.resolve(__dirname, "dist") //指定输出目录},devServer: { //web服务配置port: 8081,open: true, //服务启动时自动打开默认浏览器progress: true, //进度条contentBase: './dist' //http容器的根目录},plugins: [new HtmlWebpackPlugin({template: './src/index.html', //模板filename: 'index.html', //打包后模板名字})]
}
把打包后的js文件整合到html中
- 手动添加
<script src="./index.js"></script>
html-webpack-plugin
作用:将打包后的js自动添加到html
项目发布
npm i -g serve
serve dist
webpack图解-学习笔记相关推荐
- webpack入门学习笔记10 —— 在项目中使用图片资源
1. 写在前面 在前端项目中,图片是必不可少的一种资源.在使用图片的时候,我们可以有以下几种方式: 在 .html 文件中,通过 <img src="" alt=" ...
- 算法图解学习笔记02:递归和栈
计算机内存原理 要说递归和栈的问题,首先就要说下计算机内存的基本原理.简单理解计算机内存原理可以将一台电脑看作超市的存包柜,每个柜子都有柜号(即计算机中的地址,如0x000000f).当需要将数据存储 ...
- 算法图解学习笔记01:二分查找大O表示法
二分查找 二分查找又称折半查找,其输入的必须是有序的元素列表.二分查找的基本思想是将n个元素分成大致相等的两部分,取a[n/2]与x做比较,如果x=a[n/2],则找到x,算法中止:如果x<a[ ...
- 算法图解学习笔记02之选择排序
package 第二章;import java.util.Arrays;//找出列表中最小(大)的,放入新列表(O(n)),再次找 public class SelectionSort {public ...
- 算法图解学习笔记01之二分查找
不知道可以学到第几章,就不立flag了,容易倒 你要学会的不是写算法而是何时何地用何算法 package 第一章; //数组有序,要求快速查找出数据 public class BinarySearch ...
- 算法图解——学习笔记
文章目录 算法简介 **第二章 选择排序** 数组与链表 排序算法 算法简介 算法:一组完成任务的指令,任何片段都可以视为算法. 第一章 算法集合: 算法种类 定义 二分法 一种查询方法,通过将查找特 ...
- Webpack4 学习笔记 - 01:webpack的安装和简单配置
安装 webpack 新建一个Demo文件夹,执行初始化: npm init 在Demo文件夹里安装 webpack 和 webpack-cli : npm install webpack webpa ...
- ReactJS学习笔记——npm、JSX、webpack
2019独角兽企业重金招聘Python工程师标准>>> #ReactJS学习笔记--npm.JSX.webpack [toc] React是一个JavaScript库文件,使用它的目 ...
- webpack:js、css、es6装载与压缩配置-学习笔记
文章目录 webpack:js.css.es6装载与压缩配置-学习笔记 css文件打包 loader执行顺序 loader与plugin区别 less css抽取 js,css压缩处理 依赖包降级处理 ...
最新文章
- 跟我斗图,我用Python爬虫下载几个G的表情砸死你
- 这所双一流高校“研究生取消寒假”?!学校回应:系个别实验室和导师的要求...
- LeetCode Reconstruct Itinerary(欧拉回路)
- 菜鸟教程python3 mysql_Python 操作 MySQL 数据库
- mysql入门操作_对MySQL的几个入门操作
- C++踩坑之连接mysql数据库
- 实验12 编写0号中断的处理程序
- php修改找不到数据类型,php – 在$_POST中找不到输入类型=图像值
- C语言 函数声明和定义 - C语言零基础入门教程
- 苹果手机的隔空投送怎么使用?
- 使用python的笔记
- 如何在Android中的ListView中延迟加载图像
- Python技巧——list comprehension 与 functools.reduce
- GridView.RowCommand 事件
- 简单OCX控件的开发
- 探索汽车行业大数据应用
- 移动端关于手机横屏时样式修改
- Android模拟器启动报错:gpu found. vendor id 1002 device id 0x
- 微信程序开发系列教程(四)使用微信API创建公众号自定义菜单
- 微信小程序页面栈超过【10层】之后无法打开其他页面原因
热门文章
- C/C++ 字符串(string)转换
- 【易懂】Java源码角度分析put()与putIfAbsent()的区别——源码分析系列
- 城市间紧急救援 (25 分)【dijkstra模板 超时原因】
- 10行代码AC——1016 部分A+B (15分)
- 对肺结节几何矩的特征提取
- Python程序开发——Python实现可增删改查的员工管理系统
- 线程互斥与同步 在c#中用mutex类实现线程的互斥_Golang 并发编程与同步原语
- 按钮开始多线程_微软MR技术专家分享:AR/VR多线程处理的八年经验与技巧
- matlab如何使音频文件声音变大_如何制作视频课程
- C语言浮点数据在内存中的存储方式