webpack打包配置
在网页中会引用那些常见的静态资源?
- js
- .js .jsx .coffee .ts(Typescript 类 C#语言)
- css
- .css .less .sass .scss
- images
- .jpg .png .fig .bmp .svg
- 媒体
- .mp3 .mp4 .ogg .avi .wmv
- 字体文件
- .ttf .eot .woff .woff2 .svg
- 模板文件
- .ejs .jade .vue[这是我们在webpack中定义组件的方式,强烈推荐]
网页中引入的静态资源过多会有什么问题?
网页加载速度会变的很慢,因为要发起很多的二次请求
要处理复杂的依赖关系
如何解决上述所产生的问题?
合并,压缩,精灵图,图片的base64编码
可以使用webpack解决各个包之间的复杂的依赖关系
什么是webpack?
webpack是前端一个项目构建工具,它是基于node.js开发出来的一个前端工具
构建工具有哪些?
Gulp,是基于task任务的
Webpack,基于整个项目进行构建的
- 使用webpack这个前端自动化构建工具,可以完美的实现资源的合并,打包,压缩,混淆等等很多功能
- webpack官网
开始使用webpack打包构建
- 在项目目录(不要带中文,会报错)运行
npm init -y
初始化项目 - 创建项目基本目录结构
- 运行
npm i jquery --save
安装jquery类库 - 因为浏览器不识别es6语法,
import $ from 'jquery'
所以我们使用webpack进行语法转换,输入命令webpack src/main.js --output dist/bundle.js
webpack安装
在项目的根目录运行 npm i webpack webpack-cli -D
安装webpack和webpack-cli 到项目依赖中
使用webpack配置文件简化打包命令
- 在项目根目录创建一个
webpack.config.js
- webpack需要指定入口文件和输出文件的文件路径,所以我们需要在webpack.config.js中配置这两个路径
webpack实现实时打包构建
因为每次修改代码,都需要手动运行打包命令,十分不便捷,所以我们可以使用
webpack-dev-server
来实现实时打包编译,当修改代码的时候,就可以自动打包运行
npm i webpack-dev-server --save-dev
安装到开发依赖安装完成以后,在package.js文件中的scripts节点下添加一个
"dev":"webpack-dev-server
运行
npm run dev
就可以得到一个自动打包的环境webpack-dev-server
会在根目录的内存中给我们生成一个bundle.js,然后index.html页面引入的文件,就应该变成 /bundle.js在package.json配置文件中加入
"dev":"webpack-dev-server --contentBase src --port 3000 --open
可以直接打开网站,并且指定端口号通过webpack.config.js修改webpack-dev-server选项,如下所示:↓
devServer:{//配置dev-server命令参数的第二种形式 // --contentBase src --port 3000 --openport:2333,//设置端口号contentBase:'src',//指定打开的目录open:true //自动打开浏览器}
使用html-webpack-plugin
插件配置启动页面
运行
npm i html-webpack-plugin --save-dev
安装到开发依赖修改
webpack.config.js
配置文件:详情看配置文件html-webpack-plugin
插件会自动把bundle.js引入到页面中去,然后我们就可以把index.html页面中的引入标签删除掉了
使用webpack打包css文件
- 运行
npm i style-loader css-loader --save-dev
- 修改
webpack.config.js
配置文件,在module
节点中加入配置项,详情请看配置文件
3.注意:use表示使用那些模块处理test
所匹配到的文件,use 中loader调用顺序是从后往前调用
使用webpack打包scss文件
1.运行npm i sass-loader node-sass --save-dev
2.配置use使用 {test:/\.scss$/,use:['style-loader','css-loader','sass-loader']}
加载图片或者文件或者字体
- 运行
npm i url-loader file-loader -D
,file-loader
是不需要配置,但是url-loader依赖于file-loader所以必须下载 - 配置
webpack.cocnfig.js
,在moudle加上这行代码:{test:/\.(jpg|png|gif)$/,use:'url-loader'}
- 如果想取消base64编码,可以在use配置项后面加上参数:
url-loader?limit=100&name=[hash:8]-[name].[ext]
- 其中limit这个参数:值就是图片的大小,单位是byte,如果引入的图片大于或者等于limit值,则不会被转换成base64编码格式,
name=[hash:8]
这个参数,其中hash:8 的值就是hash加密后所取得截取值。[name]
代表图片原来的名称,[ext]
代表图片原来的后缀 - 这里的hash加密是根据图片本身加密的,并不是根据图片名称加密
- 其中limit这个参数:值就是图片的大小,单位是byte,如果引入的图片大于或者等于limit值,则不会被转换成base64编码格式,
完整的webpack.config.js配置
使用vue-cli脚手架
PS:如果不想用webpack的可以用另一个打包工具,vue-cli脚手架
- 运行
npm install -g @vue/cli
安装vue-cli - 运行
vue create vueproject
创建属于自己的项目 - 创建完成找到项目目录,运行
npm run serve
启动服务,就可以开始搞事情了
webpack打包配置相关推荐
- vue-cli+webpack打包配置
vue-cli+webpack打包配置 一: 目录结构: ├── README.md ├── build │ ├── build.js │ ├── check-versions.js │ ├── ut ...
- 前端webpack打包配置
最近在学习webpack打包,顺便做了一下笔记用来总结.后续继续补充 对项目进行初始化生成package.json文件 npm init -y 通过npm或cnpm下载webpack打包工具以及ts- ...
- webpack 打包配置
代码示例 webpack.config.js // 引入 path 为了使用 join 方法 const path = require('path')// webpack 插件 // clean-we ...
- vue.config.js配置,webpack打包配置详解
注意: vue-cli3 脚手架搭建完成后,项目目录中没有 vue.config.js 文件,需要手动创建 第一步:手动创建vue.config.js文件, 一般放在和package.json同级目录 ...
- vue项目webpack打包配置
基于vue/cli3.0+脚手架搭建Vue项目(12) 文章目录 基于vue/cli3.0+脚手架搭建Vue项目(12) 前言 一.webpack配置 1.配置vue.config.js 2.配置Dl ...
- webpack基本打包配置流程
项目搭建以及webpack打包配置流程 创建文件夹EC(文件夹和文件名根据需求自定义) 在EC文件夹下新建文件夹APP 在APP文件夹下新建入口文件index.js 和运行该入口文件的index.ht ...
- 建立项目的webpack简单配置
实战项目中的 Webpack 配置: 说明:以下命令通过 Git Bash 执行 1.建立webpack-demo文件夹及npm初始化 Administrator@PC-20170414ZFJO MI ...
- webpack打包HTML配置自动,十三、HtmlWebpackPlugin的使用 ------- 2019-04-25
一.作用:htmlWebpackPlugin插件会在webpack打包结束后,自动帮我们生成一个HTML文件,并把打包生成的js自动引入到这个HTML文件中: 二.安装 :npm install ht ...
- 自定义配置webpack打包文件
基础使用 安装 npm install webpack -g 模块化程序(配置过程忽略此步骤) cale.js function add(a,b){return a + b; } module.exp ...
最新文章
- 如何理解社交效应「蒸发式降温」?
- 轻量又高效,Apache Shiro 你值得拥有!
- VS2008打包(含水晶报表)与安装注意事项
- 20140617 数组和链表的区别
- python中的列表排序
- 运行第一个PHP程序
- Python 数据结构与算法 —— 哈弗曼树
- 约瑟夫环数学公式求解
- Android Studio查看aar文件内容
- 2021-09-08因子分解机
- Hadoop大数据组件简介
- pubwinol免刷_Pubwin万象OL实名一键自动处理程序
- 计算机上键盘无法输入法,为什么键盘打不出字 大家都会用鼠标点击输入法图...
- java中的IO流(超全)(超详解)结合实例轻松掌握
- 学生信息管理系统-教师端
- 【正本清源】关于extern、static、const的正确使用方法
- input 输入框 监听@input
- 1.2.2 musl pwn
- 如何推送PLC报警消息至微信
- 【个人纪录 | 分割】