webpack4基础配置
网页中常见的静态资源:
js: .js .jsx .coffee .ts(TypeScript 类 C# 语言)
css: .css .less .sass .scss
Images: .jpg .png .gif .bmp .svg
Fonts: .svg .ttf .eot .woff .woff2
Template: .ejs .jade .vue
网页中引入较多的静态资源会使网页的加载速度变慢(要发起很多的二次请求),并且还要处理复杂的依赖关系
webpack概念:
是一个前端自动化构建工具,基于node.js 开发的前端工具,可以完美的实现资源的合并,打包,压缩等功能。能自动寻找到浏览器不能识别的语言,进行兼容处理。默认只能打包js
webpack核心概念
Entry:入口,Webpack 执行构建的第一步将从 Entry 开始,可抽象成输入。
Module:模块,在 Webpack 里一切皆模块,一个模块对应着一个文件。Webpack 会从配置的 Entry 开始递归找出所有依赖的模块。
Chunk:代码块,一个 Chunk 由多个模块组合而成,用于代码合并与分割。
Loader:模块转换器,用于把模块原内容按照需求转换成新内容。
Plugin:扩展插件,在 Webpack 构建流程中的特定时机注入扩展逻辑来改变构建结果或做你想要的事情。
Output:输出结果,在 Webpack 经过一系列处理并得出最终想要的代码后输出结果。
mode: 模式,选择development 或者production
配置webpack环境:
1、全局安装 npm install webpack webpack-cli webpack-dev-server -g
2、 创建项目文件夹,例如文件夹名称为vue,在文件夹中创建两个文件夹,分别文dist和src
3、输入命令npm init -y ,初始化文件包,会生成一个package.json 文件,注意不要随意修改此文件,后续步骤再进行配置
4、安装相应的所需模块,例如npm i jquery -S 安装 jQuery
5、在文件包的根目录下面创建文件webpack.config.js文件,在src中创建main.js 、index.html文件,分别写入相应的调试代码。
6、配置webpack.config.js文件
7、修改package.json的配置
--open 设定自动打开项目
--port 3000 指定端口为3000
--contentBase src 指定启动的根目录,会自动打开根目录中的index.html文件,启用过程比较繁琐,建议用html-webpack-plugin 插件配置启动页面
--hot 启用浏览器热更新
8、运行 npm run dev ,会自动打开index.html,在dist目录下并不会看到bundle.js ,但是在index.html中引入<script src="/bundle.js"></script>,会生效,则打包成功,在这里bundle.js直接托管到电脑的内存中,虽然看不到,但是确实存在,它和dist平级
*
html-webpack-plugin插件配置:
1、运行 npm i html-webpack-plugin --save-dev 安装到开发依赖
2、在webpack.config.js文件中需要先引入模块,然后再进行配置,注意,前面我们安装的webpack为全局的,这里就会报错
因为本地找不到webpack,所以可以再执行npm install webpack安装本地包,在webpack.config.js加入下面代码
可以更改filename的值,查看物理磁盘的页面和内存里的页面的区别,可以发下内存磁盘的html文件body的底部生成了一个script标签,引入了bundle.js
因此可以将物理页面的<script src="/bundle.js"></script>注释掉,也不会影响页面效果,也就是使用html-webpack-plugin插件之后,不需要手动处理bundle.js的引入,插件会自动帮我们创建script标签,引入正确的bundle.js
使用webpack打包css:
webpack只能打包js文件,要打包其他文件需要安装其他模块
1、运行 npm i style-loader css-loader --save-dev
2、修改webpack.config.js文件的配置
使用webpack打包less: (sass的打包和less的类似 npm i sass-loader node-sass --save-dev)
1、运行 npm i less-loader less -D
2、修改webpack.config.js文件的配置
使用webpack打包url地址文件:
1、运行 npm i url-loader file-loader --save-dev
2、修改webpack.config.js文件的配置 {test:/.jpg|png|gif|jpeg$/, use: 'url-loader' } //处理图片路径的规则
webpack.config.js文件的配置
webpack4基础配置的更多相关文章
- webpack4基础入门操作(二)(讲解下webpack的配置内容)
前序:我之所以开始写这个系列,是因为我最近出去看了下外面的情况,发现技术更新的脚步太快了.我的技术栈已经完全落伍了. 所以准备今年学习写新的东西,而React.webPack4就是我的第一步.前面我看 ...
- StackExchange.Redis帮助类解决方案RedisRepository封装(基础配置)
本文版权归博客园和作者吴双本人共同所有,转载和爬虫,请注明原文地址.http://www.cnblogs.com/tdws/p/5815735.html 写在前面 这不是教程,分享而已,也欢迎园友们多 ...
- Hibernate 基础配置及常用功能(三)
本章重点讲述Hibernate对象的三种状态以及如何配置二级缓存 有关Hibernate的三种状态如何相互转换网上都能查到,官方文档描述的也比较详细.这里主要是针对几个重点方法做代码演示. 一.状态转 ...
- Emacs学习心得之 基础配置
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Emacs学习心得之 基础配置 1.前言2.基础配置 一.前言 本篇博文记录了Emacs的一 ...
- nginx 的基础配置[转]
nginx 的基础配置 分类: 工具软件2013-11-13 23:26 11人阅读 评论(0) 收藏 举报 目录(?)[-] 管理配置文件 全局配置 虚拟机server配置 location配置 ...
- freeRadius 基础配置及测试
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html 内部邀请码:C8E245J (不写邀请码,没有现金送) 国 ...
- Oracle 10g DataGuard手记之基础配置
DataGuard为企业数据的高可用性,数据安全以及灾难恢复提供支持,一般由一个primary db与几个物理或逻辑standby db组成一个DataGuard配置. 系统环境 操作系统为windo ...
- SpringMVC最基础配置
SpringMVC和Struts2一样,是前后台的一个粘合剂,struts2用得比较熟悉了,现在来配置一下SpringMVC,看看其最基础配置和基本使用.SpriingMVC不是太难,学习成本不高,现 ...
- 使用Java管理Azure(1):基础配置
Azure针对Java开发人员提供了非常丰富的开发库,开发工具,和相关插件,让你通过Java对Azure进行服务管理和开发,本文第一步先介绍如何快速的配置Java开发工具,主要针对目前比较流行的Ecl ...
随机推荐
- python之拷贝文件
做了个小实验, 用于拷贝文件夹下面的jpg. 用于拓展, 可以引入类和方法, 拷贝你指定的任意类型的文件. import os src = 'C:\\Users\\Administrator\\Des ...
- 使用svctraceviewer查看WCF服务异常信息
这两天遇到一个问题,调用一个WCF服务的时候,服务器端正常的返回了数据,但是客户端却遇到了一场 System.ServiceModel.CommunicationException: The unde ...
- nova计算服务
1. nova介绍 Nova 是 OpenStack 最核心的服务,负责维护和管理云环境的计算资源.OpenStack 作为 IaaS 的云操作系统,虚拟机生命周期管理也就是通过 Nova 来实现的. ...
- docker mysql 容器报too many connections 引发的liunx磁盘扩容操作
症状每次删除mysql容器重启没两分钟又报标题错 df -h 命令查看各个挂载空间应用情况发现root home var 三个文件目录挂载的空间满了 网上百度了一下liunx磁盘扩容操作,fdisk ...
- MSF魔鬼训练营第一章 初识Metasploit
1.1.4渗透测试过程环节 PTES标准7个阶段 1.前期交互阶段 收集客户需求.准备测试计划.定义测试范围与边界.定义业务目标.项目管理与规划等 2.情报搜集阶段 公开来源信息查 ...
- hive_server2的权限控制
CDH的core-sit开启: 第一个false表示用系统用户来和hive用户的权限绑定,但经测试并没有生效,所以可以改为true 第二项设置成ALL,表示创建者对其创建的表拥有所有的权限,这样也是比 ...
- [转帖]目标管理的S.M.A.R.T.理念
目标管理的S.M.A.R.T.理念 https://blog.csdn.net/gehantao/article/details/1593510 目标管理(MBO)是一种管理战略,它使用的是S ...
- Java细节----method和function的区别
面向对象的语言叫方法 面向过程的语言叫函数 在java中没有函数这么一说,只有方法一说.属于概念上的区别. 硬要说区别. Method必须依赖于Object. Function 是独立的,不需要依赖于 ...
- 区间和序列上的dp
区间上的dp状态设计最基本的形式: \(F[i]\)表示以i结尾的最优值或方案数. \(F[i][k]\)表示以i结尾附加信息为k的最优值或方案数. 当然可以有多维附加信息. 转移的话往往是枚举上一个 ...
- 三校联训 【NOIP模拟】寻找
题面 “我有个愿望,我希望穿越一切找到你.” 这是个二维平面世界,平面上有n个特殊的果实,我从(0,0)点出发,希望得到尽量多的果实,但是出于某种特殊的原因,我的运动方式只有三种(假设当前我在(x,y ...