<!--
.sass后缀的文件名 比较老了 现在它的后缀名是.scss 其实他们是同一个东西 只是 后缀名发生了变化
以 .sass写的文件的内容是 他没有括号 没有分号 有点怪 它跟新为了.scss 就有了花括号 和 逗号了
body
color:red
font-size:12px
 
字体文件有 .svg .ttf .eot .woff .woff2 这些都是字体文件的后缀名
网页中 引入了太多的静态资源 会有这样的问题
1==》网页的加载速度变慢 因为会有很多的二次请求
它首页拿到网页中的 html标签 当他发现有srcipt或者src标签 等 标签 它就回去服务器去拿 如果静态资源多了 服务器就会变得很慢 一个网页要渲染出来 所以不止发送一次请求
2==》有处理错综复杂的依赖关系 如 bootstrap和jq之间的依赖关系
如何解决上述之间的问题:
1合并 压缩 精灵图 图片的Base64编码(它适用于小的图片) 图片的Base64编码的做法比精灵图更加的好,因它要发送0次青丘 而精灵图至少要发送一次青丘
2可以使用requireJS 也可以使用webpack可以解决各个包之间复杂的依赖关系
什么是webpack
webpack是一个前端的项目构建工具 它是基于node.js开发出来的一个前端工具
所以要使用webpack 首先要安装node.js
如何完美的而解决上述的两个问题
1使用Gulp     2webpack
 
1使用Gulp它是基于task任务的
2webpack 它是基于整个项目惊醒构建的 可以完美的实现资源的合并 打包 压缩 依赖
-->
 
<!--
安装webPack的两种方式
第一次全局安装 npm i webpack -g 第一次安装了之后以后就不需要在安装了
在项目根录中运行 npm i webpack --save-dev 安装到项目依赖中去
ps=》dist 目录 代表的是产品级的目录 直接给用户
语法 ul>li*10{这是第$li} 这是一种快的语法
-->
 
<!--
做一个各行变色的功能有4步骤
安装包描述文件 npm init -y 新版本的node会自带这个的
npm i jquery -S 安装jq 保存到依赖列表中去了 在E:\vuekaifa\lib\05day-webpack-隔行变色>这个目录中去
05day-webpack-隔行变色目录下==》新建src目录 在src目录下 新建index.html文件 在src目录下新建mian.js文件
src目录下创建 imgs文件夹 和js文件夹
05day-webpack-隔行变色目录下==>创建dist目录
在mian.js文件中导入jq 导入的语法是 import ** from **它是es6中导入模块的方式
1 如 import $ from 'jquery' 注意大小写
从引入文件可以知道 首先是在自己的兄弟目录中去找 然后去父级目录的兄弟目录中去找 然后依次类推
下载cnpm i jquery -S
 
 
// 实现隔行变色的功能
$(function(){
$("li:odd").css("background","red")
})
在node.js中 你要是这样写的 const $=require("Jquery")
 
由于es6的import导包的方式台高级了 所以浏览器解析不了 所以import $ from 'Jquery'汇报错
所以需要webpack来惊醒转化
2在src下创建webpack.config.js文件配置如下
const path=require("path"); //路径模块
module.exports={
entry:path.join(__dirname,'./mian.js'), //入口文件 使用webpack要打包哪一个文件
output:{ //输出相关的配置
path:path.join(_dirname,'./dist'), //指定打包好的文件会输出到哪一个目录(dist)下去
// filename:"bundle.js" //指定打包好的文件的名称叫什么名字
}
}
3所以在index中的时候我们就引入被webpack编译好的js文件就可以了
<script src="../dist/testindex.js"></script>
4转化的语法是 webpack ./被编译的文件路径 ./新文件的路径 这是webpack运行的命令
webpack ./src/mian.js ./dist/testindex.js 在dist中被编译的文件是为testindex.js
 
webpack 能够处理的问题
webpack能够处理js文件之间的互相依赖关系
webpack能够处理js的兼容性问题 能装将es6的语法转化为es5的语法
 
E:\vuekaifa\lib\05day-webpack-隔行变色> webpack ./src/main.js ./dist/yasuomain.js
Hash: 4cc4695e15064bd19a6f
Version: webpack 3.8.1
Time: 344ms
Asset Size Chunks Chunk Names
yasuomain.js 284 kB 0 [emitted] [big] main
[0] ./src/main.js 87 bytes {0} [built]
+ 1 hidden module
-->
 
<!--
如何实现时时跟新我写的代码 此时就需要有一个配置文件了 webpack.config.js这个文件 这个文件是在跟目录下哦
webpack是基于node去构建的 所以你的依法和node还是很相似的哦
在配置文件中需要手动的指定配置文件的入口和出口
-->
<!--
wabpack.config.js文件最基本的配置哦 文件在跟目录下哦
 
// 因为要对路径操作 所以你要引入path这个模块哦 对他进行操作哦
const path=require("path"); //路径模块
// 配置文件 暴露出去哦 // 手动的指定入口和出口
module.exports={
entry:path.join(__dirname,'被打包的文件.js'), //入口文件 使用webpack要打包哪一个文件
output:{ //输出相关的配置
path:path.join(__dirname,'./dist'), //指定打包好的文件会输出到哪一个目录(dist)下去
filename:"bundle.js" //指定打包好的文件的名称叫什么名字
}
}
当你配置好了之后 直接在 E:\vuekaifa\lib\05day-webpack-隔行变色>webpack 输入webpack就行了 它就会自动帮你打包
此时还不行 你还需要写后面的代码 看12章
-->
 
<!-- 如何添加npm run dev 启动程序
下载npm i webpack-dev-server -S 在pack.json中添加 "dev": "webpack-dev-server"这一句 注意使用逗号隔开
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"dev": "webpack-dev-server" //添加这一句
},
本节实现的功能==》手动修改成自己想要的端口号 2并且自动打开浏览器哦
下载 npm i webpack-dev-server -S
在package.json中修改
将“script”:{ "dev":"webpack-dev-server --open --port 3000"}
解释==》 --open是自动打开浏览器 --port 3000将端口修改为3000
-->
<!-- 本节实现的功能==》
我们发现启动之后展示的不是一个具体的首页 而是一个目录 如何解决启动之后是一个具体的首页
将“script”:{ "dev":"webpack-dev-server --open --port 3000 --contentBase src --hot"} 这里有4个指令
 
解释==》 --open是自动打开浏览器 --port 3000将端口修改为3000 --contentBase src 以src为根目录 展示它里面的index.html这个文件
--hot实现局部的跟新 你修改了哪里就跟新哪里 效率跟高了 它能够实现网页不重载(那个圈圈不会刷新) 就可以实现页面跟新
-->

01day-webpack的更多相关文章

  1. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  2. webpack之傻瓜式教程

    接触webpack也有挺长一段时间了,公司的项目也是一直用着webpack在打包处理,但前几天在教新人的情况下,遇到了一个问题,那就是:尽管网上的webpack教程满天飞,但是却很难找到一个能让新人快 ...

  3. 细说前端自动化打包工具--webpack

    背景 记得2004年的时候,互联网开发就是做网页,那时也没有前端和后端的区分,有时一个网站就是一些纯静态的html,通过链接组织在一起.用过Dreamweaver的都知道,做网页就像用word编辑文档 ...

  4. Webstorm+Webpack+echarts构建个性化定制的数据可视化图表&&两个echarts详细教程(柱状图,南丁格尔图)

    Webstorm+Webpack+echarts   ECharts 特性介绍 ECharts,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(I ...

  5. 使用webstorm+webpack构建简单入门级“HelloWorld”的应用&&引用jquery来实现alert

    使用webstorm+webpack构建简单入门级"HelloWorld"的应用&&构建使用jquery来实现 1.首先你自己把webstorm安装完成. 请参考这 ...

  6. webpack入门教程之Hello webpack(一)

    webpack入门教程系列为官网Tutorials的个人译文,旨在给予想要学习webpack的小伙伴一个另外的途径.如有不当之处,请大家指出. 看完入门教程系列后,你将会学习到如下内容: 1.如何安装 ...

  7. webpack的使用

    1.webpack是什么? 打包前端项目的工具(为项目提高逼格的东西). 2.webpack的基本命令 webpack#最基本的启动webpack命令 webpack-w #提供watch方法,实时进 ...

  8. Webpack 配置摘要

    open-browser-webpack-plugin 自动打开浏览器 html-webpack-plugin 通过 JS 生成 HTML webpack.optimize.UglifyJsPlugi ...

  9. Vue + Webpack + Vue-loader 系列教程(2)相关配置篇

    原文地址:https://lvyongbo.gitbooks.io/vue-loader/content/ 使用预处理器 在 Webpack 中,所有的预处理器需要和一个相应的加载器一同使用.vue- ...

  10. Vue + Webpack + Vue-loader 系列教程(1)功能介绍篇

    原文地址:https://lvyongbo.gitbooks.io/vue-loader/content/ Vue-loader 是什么? vue-loader 是一个加载器,能把如下格式的 Vue ...

随机推荐

  1. Thinkphp 模板中 if 嵌套层级过多的问题,嵌套3级就报错,取消层级限制

    解决此问题有两种办法:1.第三层if换成eq或者原生<?php 'abc';>  2.修改Tp核心配置文件 1.第三层if换成eq或者原生<?php 'abc';> 如下图&l ...

  2. 缺少控制文件备份时如何还原数据库 (Doc ID 1438776.1)

    How to restore database when controlfile backup missing (Doc ID 1438776.1) APPLIES TO: Oracle Databa ...

  3. Shell—各种括号的用法

    括号的种类 小括号,圆括号 ( ) 中括号,方括号 [ ] 大括号.花括号 { } 一.单小括号 () 1.另开命令组——小括号中的命令将会新开启一个子shell独立顺序运行,所以括号中的变量不能够被 ...

  4. java直接存取MS Access的mdb数据库文件

    jdbc 访问 access 的 mdb 数据库文件,使用一个叫ucanaccess的开发包实现这个功能. "Supported Access formats: 2000,2002/2003 ...

  5. TensorFlow从1到2(十二)生成对抗网络GAN和图片自动生成

    生成对抗网络的概念 上一篇中介绍的VAE自动编码器具备了一定程度的创造特征,能够"无中生有"的由一组随机数向量生成手写字符的图片. 这个"创造能力"我们在模型中 ...

  6. Linux内核驱动之GPIO子系统API接口概述

    1.前言 在嵌入式Linux开发中,对嵌入式SoC中的GPIO进行控制非常重要,Linux内核中提供了GPIO子系统,驱动开发者在驱动代码中使用GPIO子系统提供的API函数,便可以达到对GPIO控制 ...

  7. 数据库——SQL-SERVER练习(2)连接与子查询

    一.实验准备 1.复制实验要求文件及“CREATE-TABLES.SQL”文件, 粘贴到本地机桌面. 2.启动SQL-SERVER服务. 3. 运行查询分析器, 点击菜单<文件>/< ...

  8. Linux - 几种方法来实现scp拷贝时无需输入密码

    前言 在实际工作中,经常会将本地的一些文件传送到远程的机器上.scp是一个很好用的命令,缺点是需要手工输入密码. 如何在shell脚本中实现传输文件,而不用手工输入密码呢?接下来介绍三种方法. 一.建 ...

  9. zookeeper — 实现分布式锁

    一.前言 在之前的文章中介绍过分布式锁的特点和利用Redis实现简单的分布式锁.但是分布式锁的实现还有很多其他方式,但是万变不离其宗,始终遵循一个特点:同一时刻只能有一个操作获取.这篇文章主要介绍如何 ...

  10. oracle学习笔记(十一) 高级查询

    高级查询 分组查询 select * from student [where ] [having ] --二次限定 [order by] --asc升序 desc降序 默认升序 查看EMPLOYEE表 ...