• 主页
  • 归档
  • 分类
  • 照片墙
所有文章 友情链接 关于我

  • 主页
  • 归档
  • 分类
  • 照片墙

webpack(2)-进阶

2018-06-10 18:26:54
总字数 961
预计阅读时间 4 分钟

开发工具

使用webpack-dev-server可以在本地启动一个服务 , 用来访问和调试构建出的页面
首先执行全局安装

1
$ npm install -g webpack-dev-server

使用方法
在项目目录下首先使用webpack --progress进行打包
webpack progress

然后使用webpack-dev-server --progress启动服务
webpack server

为了方便 , 我们也可以把这两个命令配置为npm的脚本
在package.json当中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
"name": "webpack_demo",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"build":"webpack --progress",
"start":"webpack-dev-server --progress"
},
"author": "",
"license": "MIT",
"devDependencies": {
"css-loader": "^0.26.1",
"style-loader": "^0.13.1",
"webpack": "^1.14.0"
}
}

之后执行npm run build和npm run start , 就相当于是直接执行这两个命令

加载器

上一节当中有用到了css加载器 , 将.css文件的内容直接嵌入到页面当中
还有很多第三方的加载器 , 可以给开发提供方便

资源文件加载器 file-loader

用于加载项目中用到的静态资源文件 , 例如图片 字体等

1
$ npm install file-loader --save-dev

webpack.config.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
module.exports = {
entry: {
index : './src/entry.js'
},
output: {
path: __dirname+"/dist",
filename: 'bundle.js'
},
module: {
loaders: [
{ test: /\.css$/, loaders: ["style-loader","css-loader"] },
//配置资源文件所对应的文件类型(正则)
{ test: /\.(png|jpg|gif|svg|woff|woff2|ttf|eot)$/, loader: "file-loader" }
]
}
};

比如在css文件当中引用了一个图片文件

1
2
3
4
5
6
7
8
body {
background-color: #ccc;
}
#testImg {
width:200px;
height:200px;
background-image: url("../images/test.png");
}

执行打包之后就会根据图片的哈希码作为命名在输出目录下生成一个图片文件
image output

并且对应的css样式也会被替换
css output

图片加载器 url-loader

图片加载器是用于把项目中用到的图片转化为base64编码
( 这个编码在img元素的src 或者 css样式当中都是可用的 )

1
$ npm install url-loader --save-dev

同样使用上面的例子当中css样式里面对图片的引用
加载器的配置修改为

1
2
3
4
5
6
module: {
loaders: [
{ test: /\.css$/, loaders: ["style-loader","css-loader"] },
{ test: /\.(png|jpg|gif)$/, loader: "url-loader" }
]
}

执行打包和发布运行后
base64 output


**补充 : **
在项目当中 , 我们通常把较小的图片文件转化为base64编码 , 较大的图片文件则直接保留原文件
避免js文件太过臃肿 , 加载缓慢
url-loader提供了一个limit参数 , 可以对图片的大小进行限制 ( 单位是字节 ) , 小于该值的由url-loader处理
大于这个值的 , 则直接交给file-loader处理

1
2
3
4
5
6
7
8
9
10
11
12
13
module.exports = {
//...(其他配置项)
module: {
loaders: [
{ test: /\.css$/, loaders: ["style-loader","css-loader","postcss-loader"]},
{ test: /\.(png|jpg|jpeg|gif)$/, loader: "url-loader" , query :{limit:20000,name:"[name]-[hash:8].[ext]",publicPath:"../images/",outputPath:"images/"}},
//会将图片转化为base64编码直接写入到js文件当中
// { test: /\.(png|jpg|jpeg|gif|svg|eot)$/, loader: "file-loader", query :{name:"images/[name]-[hash:8].[ext]"}},
{ test: /\.(svg|eot)$/, loader: "file-loader", query :{name:"[name]-[hash:8].[ext]",publicPath:"../fonts/",outputPath:"fonts/"}},
//注意 : file-loader配置的文件类型匹配不要和url-loader冲突
]
}
};

此时传递给url-loader的参数 , 如果资源文件被交给了file-loader来处理 , 这些参数也会传给file-loader
name就属于给file-loader去用的参数 , 代表打包以后文件的命名规则
打包后的结果如下

build result


其他常用的加载器还有

  • json处理 - json-loader
  • html处理 - raw-loader
  • webpack
  • 前端杂烩

扫一扫,分享到微信

webpack(3)-补充
webpack(1)-初见 
© 2024 夏夜梦星辰
鲁ICP备19028444号
Power By Hexo
正在搜索...
  • 所有文章
  • 友情链接
  • 关于我
标签: 分类:
  • maven
  • 持续集成
  • JMS
  • 线程
  • JavaScript
  • ECMAScript6
  • 单元测试
  • Promise
  • Web Worker
  • 函数
  • prototype
  • 模块化
  • 正则表达式
  • 数据库
  • MongoDB
  • 索引
  • 集群
  • 全文检索
  • flutter
  • dart
  • git
  • 版本控制
  • linux
  • shell
  • docker
  • nginx
  • jenkins
  • opencv
  • vim
  • react
  • react native
  • 前端
  • css
  • HTML5
  • Hexo
  • sass
  • Three.js
  • TypeScript
  • Vue
  • 组件化
  • base64
  • webpack
  • nodejs
  • gulp
  • TensorFlow
  • 机器学习
  • 算法
  • 动态规划
  • 数据结构
  • Java
  • JavaScript
  • MongoDB
  • flutter
  • Git
  • linux
  • react
  • 前端杂烩
  • 男生女生
  • 算法
  • 函数式进阶-管道

    2023-01-19

    JavaScript

    JavaScript函数

  • CSS计数器

    2022-12-30

    前端杂烩

    前端css

  • Three.js初见(2)

    2022-04-10

    前端杂烩

    前端Three.js

  • Three.js初见(1)

    2022-04-03

    前端杂烩

    前端Three.js

  • Vue3新特性总结

    2022-03-13

    前端杂烩

    前端Vue

  • TypeScript实用工具类型

    2021-05-11

    前端杂烩

    TypeScript

  • TensorFlow.js初见(2)

    2021-04-27

    算法

    TensorFlow机器学习

  • parcel+react+tsx

    2021-04-06

    react

    react

  • TensorFlow.js初见(1)

    2021-04-01

    算法

    TensorFlow机器学习

  • Web Components

    2020-11-03

    前端杂烩

    组件化

  • 图片加载失败处理

    2020-10-28

    前端杂烩

    前端css

  • 原生CSS变量

    2020-10-23

    前端杂烩

    前端css

  • CSS属性shape-outside

    2020-07-04

    前端杂烩

    前端css

  • Vue项目改造Typescript

    2020-04-21

    前端杂烩

    前端TypeScript

  • linux守护进程

    2020-01-12

    linux

    linux

  • 重新认识JSON.stringify

    2019-12-11

    JavaScript

    JavaScript

  • Flutter踩坑记录

    2019-11-30

    flutter

    flutterdart

  • Flutter路由

    2019-11-10

    flutter

    flutterdart

  • Flutter动态列表

    2019-11-06

    flutter

    flutterdart

  • Flutter初见

    2019-10-21

    flutter

    flutterdart

  • dart初见(2)

    2019-10-06

    flutter

    dart

  • dart初见(1)

    2019-09-28

    flutter

    dart

  • Web-Workers

    2019-09-21

    JavaScript

    JavaScriptWeb Worker

  • xargs命令

    2019-08-23

    linux

    linux

  • 洗牌算法

    2019-07-22

    算法

    算法

  • Jest单元测试

    2019-07-21

    JavaScript

    JavaScript单元测试

  • 数据库索引原理浅析

    2019-07-16

    算法

    索引数据结构

  • TypeScript泛型

    2019-07-13

    前端杂烩

    TypeScript

  • 博客全文检索施工记录

    2019-07-09

    MongoDB

    MongoDB全文检索

  • 优雅写异步与循环

    2019-06-29

    JavaScript

    JavaScript

  • TypeScript初见

    2019-06-23

    前端杂烩

    TypeScript

  • 照片墙施工记录

    2019-05-12

    前端杂烩

    前端Hexo

  • 博客部署调整记录

    2019-05-11

    前端杂烩

    nodejsgulp

  • webpack4升级踩坑

    2019-04-30

    前端杂烩

    前端webpack

  • 博客图片迁移-后续

    2019-04-23

    前端杂烩

    nodejs

  • 1.2、linux常用命令与技巧(2)

    2019-04-21

    linux

    linux

  • 博客图片迁移记

    2019-04-18

    前端杂烩

    jenkinsnodejs

  • gitlab调用jenkins实现自动构建

    2019-03-31

    linux

    linuxjenkins

  • vim学习手记(2)

    2019-03-30

    linux

    linuxvim

  • vim学习手记(1)

    2019-03-27

    linux

    linuxvim

  • 函数防抖与函数节流

    2019-03-12

    JavaScript

    JavaScript函数

  • js对文件和二进制的操作

    2019-01-30

    JavaScript

    JavaScript

  • gcc与nodejs的编译安装

    2019-01-19

    linux

    linux

  • 正则表达式重新入门(2)

    2018-12-24

    JavaScript

    正则表达式

  • 正则表达式重新入门(1)

    2018-12-10

    JavaScript

    正则表达式

  • Promise(3)-async与await

    2018-12-06

    JavaScript

    JavaScriptPromise

  • 持续集成-jenkins

    2018-11-07

    Java

    持续集成

  • 消息中间件(2)-java连接ActiveMQ

    2018-11-02

    Java

    JMS

  • 消息中间件(1)-初见

    2018-10-24

    Java

    JMS

  • bash通配符

    2018-09-26

    linux

    linuxshell

  • 动态规划(2)

    2018-09-01

    算法

    算法动态规划

  • 动态规划(1)

    2018-08-27

    算法

    算法动态规划

  • react-native(1)-初见

    2018-08-13

    react

    react native

  • 3.5、Docker(5)-容器连接

    2018-07-09

    linux

    linuxdocker

  • Hexo服务器静态化部署

    2018-07-02

    前端杂烩

    Hexo

  • 3.4、Docker(4)-nginx

    2018-06-27

    linux

    dockernginx

  • table-cell应用

    2018-06-15

    前端杂烩

    前端css

  • Optional

    2018-06-14

    Java

  • 重新认识display

    2018-06-14

    前端杂烩

    前端css

  • webpack(3)-补充

    2018-06-10

    前端杂烩

    webpack

  • webpack(2)-进阶

    2018-06-10

    前端杂烩

    webpack

  • webpack(1)-初见

    2018-06-10

    前端杂烩

    webpack

  • base64文件上传

    2018-05-30

    前端杂烩

    base64

  • 二进制有关问题两则

    2018-05-26

    算法

    算法

  • 模块化编程(2)

    2018-05-06

    JavaScript

    JavaScript模块化

  • 模块化编程(1)

    2018-05-06

    JavaScript

    JavaScript模块化

  • Symbol

    2018-05-06

    JavaScript

    JavaScriptECMAScript6

  • new关键字做了什么

    2018-05-02

    JavaScript

    JavaScript

  • 生成器函数

    2018-04-29

    JavaScript

    JavaScriptECMAScript6

  • 扩展运算符的用法

    2018-04-28

    JavaScript

    JavaScriptECMAScript6

  • ES6的重要新特性

    2018-04-22

    JavaScript

    JavaScriptECMAScript6

  • Promise(2)

    2018-04-20

    JavaScript

    JavaScriptPromise

  • Promise(1)

    2018-04-20

    JavaScript

    JavaScriptPromise

  • 2.3、shell(4)-使用技巧

    2018-03-06

    linux

    linuxshell

  • 2.2、shell编程(3)-流程控制与函数

    2018-03-06

    linux

    linuxshell

  • 2.0、shell编程(1)-初见

    2018-03-05

    linux

    linuxshell

  • 2.1、shell编程(2)-从入门到重新入门

    2018-03-05

    linux

    linuxshell

  • 7.0、使用浏览器访问MongoDB

    2018-02-16

    MongoDB

    数据库MongoDB

  • 6.1、快速搭建复制集

    2018-02-11

    MongoDB

    数据库MongoDB集群

  • 6.0、复制集

    2018-02-11

    MongoDB

    数据库MongoDB集群

  • 3.3、Docker(3)-部署wordpress实践

    2018-02-10

    linux

    linuxdocker

  • 3.2、Docker(2)-使用技巧

    2018-02-09

    linux

    linuxdocker

  • 3.1、Docker(1)-初见

    2018-02-08

    linux

    linuxdocker

  • 5.2、关联映射

    2018-01-27

    MongoDB

    数据库MongoDB

  • 5.1、morphia

    2018-01-26

    MongoDB

    数据库MongoDB

  • 5.0、Java操作MongoDB数据库

    2018-01-26

    MongoDB

    数据库MongoDB

  • crontab-定时任务

    2018-01-14

    linux

    linux

  • expect-交互式命令行自动化执行

    2018-01-14

    linux

    linux

  • opencv编译安装

    2018-01-10

    linux

    linuxopencv

  • Lamdba表达式(2)-Stream

    2018-01-09

    Java

  • Lamdba表达式(1)

    2018-01-09

    Java

  • 4.0、安全验证

    2018-01-09

    MongoDB

    数据库MongoDB

  • Hexo站点实现站内搜索

    2018-01-09

    前端杂烩

    Hexo

  • Hexo搭建个人博客

    2018-01-09

    前端杂烩

    Hexo

  • 3.3、索引构建情况分析

    2018-01-04

    MongoDB

    数据库MongoDB索引

  • 3.2.1、GeoJSON

    2018-01-04

    MongoDB

    数据库MongoDB索引

  • 1.1、linux常用命令与技巧(1)

    2018-01-03

    linux

    linux

  • Maven(6)-可运行jar打包

    2017-12-27

    Java

    maven

  • 面向对象编程

    2017-12-20

    JavaScript

    JavaScript

  • 3.2、地理位置索引

    2017-12-19

    MongoDB

    数据库MongoDB索引

  • 3.1、全文索引

    2017-12-16

    MongoDB

    数据库MongoDB索引

  • 3.0、索引

    2017-12-16

    MongoDB

    数据库MongoDB

  • 2.1、数据查询

    2017-12-15

    MongoDB

    数据库MongoDB

  • 2.0、数据库基本操作

    2017-12-15

    MongoDB

    数据库MongoDB

  • 1.1、MongoDB的安装与配置

    2017-12-12

    MongoDB

    数据库MongoDB

  • 1.0、NoSQL

    2017-12-12

    MongoDB

    数据库MongoDB

  • Git(4)-远程仓库

    2017-11-19

    Git

    git版本控制

  • Git(3)-分支

    2017-11-18

    Git

    git版本控制

  • Git(2)-基础操作

    2017-11-18

    Git

    git版本控制

  • Git(1)-初见

    2017-11-18

    Git

    git版本控制

  • SASS-语法(2)

    2017-11-13

    前端杂烩

    前端sass

  • SASS-语法(1)

    2017-11-12

    前端杂烩

    前端sass

  • SASS-初见

    2017-11-11

    前端杂烩

    前端sass

  • HTML5的缓存策略

    2017-11-10

    前端杂烩

    HTML5

  • 实现call方法

    2017-11-10

    JavaScript

    JavaScriptprototype

  • Maven(5)-jetty-plugin

    2017-10-19

    Java

    maven

  • CSS中的字体

    2017-10-19

    前端杂烩

    前端css

  • Maven(4)-补充

    2017-10-18

    Java

    maven

  • Maven(3)-从入门到重新入门

    2017-10-18

    Java

    maven

  • 实现bind方法

    2017-10-14

    JavaScript

    JavaScriptprototype

  • 变量的定义提升

    2017-10-14

    JavaScript

    JavaScript函数

  • 函数形参与arguments

    2017-10-14

    JavaScript

    JavaScript函数

  • CSS动画(3)-animation

    2017-10-12

    前端杂烩

    前端css

  • CSS动画(2)-transition

    2017-10-12

    前端杂烩

    前端css

  • CSS动画(1)-transform

    2017-10-12

    前端杂烩

    前端css

  • Maven(2)-搭建web项目

    2017-10-11

    Java

    maven

  • 自增的线程安全问题

    2017-10-09

    Java

    线程

  • Maven(1)-初见

    2017-10-09

    Java

    maven

  • CSS布局(4)-grid

    2017-09-17

    前端杂烩

    前端css

  • CSS布局(3)-Flex实践

    2017-09-15

    前端杂烩

    前端css

  • CSS布局(2)-Flex

    2017-09-15

    前端杂烩

    前端css

  • CSS布局(1)

    2017-09-14

    前端杂烩

    前端css

  • HashMap的工作原理

    2017-09-14

    Java

  • viewport

    2017-09-09

    前端杂烩

    前端

  • 响应式布局

    2017-09-06

    前端杂烩

    前端css

  • 僵尸镇·蚀心引

    2016-05-19

    男生女生

  • 鬼脸

    2016-05-16

    男生女生

  • 迷失

    2016-05-16

    男生女生

  • 死于重阳

    2016-05-16

    男生女生

  • 悲伤纸人

    2016-05-16

    男生女生

  • 我到底杀了谁

    2016-05-16

    男生女生

  • 惊蛰

    2016-05-16

    男生女生

  • 鸟人

    2016-05-16

    男生女生

  • 第五个人

    2016-05-16

    男生女生

  • 宠爱

    2016-05-16

    男生女生

  • 杀人钟

    2016-05-16

    男生女生

  • 废人

    2016-05-16

    男生女生

  • 笑道

    2016-05-16

    男生女生

  • 抽象画

    2016-05-16

    男生女生

  • Bug

    2016-05-16

    男生女生

  • “善终善始”服务

    2016-05-16

    男生女生

  • 第二次约会

    2016-05-16

    男生女生

  • 伤疤

    2016-05-16

    男生女生

  • 别信小孩

    2016-05-16

    男生女生

  • 圣菊

    2016-05-16

    男生女生

  • 黄全网吧

    2016-05-16

    男生女生

  • 邮差

    2016-04-11

    男生女生

  • 遗落在兰若寺的心

    2016-04-11

    男生女生

  • 橡皮擦

    2016-04-11

    男生女生

  • 我们是一家人

    2016-04-11

    男生女生

  • 寿宴记

    2016-04-11

    男生女生

  • 石中鱼

    2016-04-11

    男生女生

  • 劝说者

    2016-04-11

    男生女生

  • 少年残像

    2016-04-09

    男生女生

  • 笙歌

    2016-04-09

    男生女生

  • 童魂

    2016-04-09

    男生女生

  • 酷刑

    2016-04-09

    男生女生

  • 巴别塔以北

    2016-04-09

    男生女生

  • 我要见皇上

    2016-04-09

    男生女生

  • 大江湖

    2016-04-09

    男生女生

  • 铅笔情诗

    2016-04-09

    男生女生

  • 唇亡齿寒

    2016-04-09

    男生女生

  • 推销员守则

    2016-04-09

    男生女生

  • 陌生人在妄城

    2016-04-09

    男生女生

  • 天佑爱人

    2016-04-09

    男生女生

  • 西风曾相识

    2016-04-09

    男生女生

  • 纺院惊梦

    2016-04-09

    男生女生

  • 偶数

    2016-04-09

    男生女生

  • 木记

    2016-04-09

    男生女生

  • 罗刹海市

    2016-04-09

    男生女生

  • 灵感

    2016-04-09

    男生女生

  • 老梁

    2016-04-09

    男生女生

  • 画皮

    2016-04-09

    男生女生

  • 地行客

    2016-04-09

    男生女生

  • 1982

    2016-04-09

    男生女生

  • X先生

    2016-04-09

    男生女生

  • 锦怒

    2016-04-09

    男生女生

  • 双面感应

    2016-04-09

    男生女生

  • 尖叫的老巫婆

    2016-04-09

    男生女生

  • 匿名的宝贝

    2016-04-09

    男生女生

  • 极光之逝

    2016-04-09

    男生女生

  • 天蝎森林

    2016-04-09

    男生女生

  • 巫毒娃娃

    2016-04-09

    男生女生

  • 洛城故事

    2016-03-21

    男生女生

  • 十年饮冰,难凉热血
  • †少女癌†
  • 猫与向日葵
  • coderfun
  • JENKINS
  • API管理后台
愿你最终能接纳每一面每一种的自己
独自活着便是团圆
  1. 1. 开发工具
  2. 2. 加载器
    1. 2.1. 资源文件加载器 file-loader
    2. 2.2. 图片加载器 url-loader