Vue(基础七)_webpack使用工具(下)
一、前言
1、webpack.config文件配置
2、webpack打包css文件
3、webpack配置打包img文件
4、编译less文件
5、webpack将index.html 和build.js编译到同一个文件夹
二、主要内容
1、webpack.config文件配置
webpack 在执行时除了用webpack xxxx.js xxxx.js 这种形式,还可以用配置文件的形式,默认会搜索当前文件下的webpack.config.js这个文件,
(1)webpack.config.js文件基本配置
//传统方式 //webpack ./main.js ./build.js module.exports = {
//入口文件
entry:{
"main":'./main.js' //可以有多个,也可以有一个,如果有一个就默认从这个入口开始分析
},
//出口文件
output:{
filename:'./build.js'
},
watch:true,//文件监听是否有改动,有就会自动产出build.js文件
}
(2)有时候我们需要分别执行生产环境和开发环境,分别监听出口文件,需要再额外添加两个文件如下:
第一步:
两个文件分别加如下代码:
webpack.dev.config.js
// webpack ./main.js ./build.js
module.exports = {
// 入口
entry:{
// 可以有多个入口,也可以有一个,如果有一个就默认从这一个入口开始分析
"main":'./main.js'
},
output:{
filename:'./build.js'
},
watch:true,//文件监视改动 自动产出build.js
}
webpack.prod.config.js
// webpack ./main.js ./build.js
module.exports = {
// 入口
entry:{
// 可以有多个入口,也可以有一个,如果有一个就默认从这一个入口开始分析
"main":'./main.js'
},
output:{
filename:'./build.js'
}
}
第二步:上面加的两个文件只是普通的.js文件,执行的时候需要按照如下执行,才会识别
webpack --config ./webpack.dev.config.js
第三步:我们也可以到package.json中添加如下
"scripts": {
"dev":"webpack --config ./webpack.dev.config.js",
"prod":"webpack --config ./webpack.prod.config.js"
}
第四步:执行的时候就可以按照
npm run dev npm run prod
--------------------------------------------------------------------------------------------------------------------------------------------
2、webpack打包css文件
(1)建立的工程目录如下
(2)App.js main.js main.css 代码如下
import './main.css'
// es6 Module
import Vue from './vue.js'
// 整个项目的入口文件
import App from './App.js' new Vue({
el:'#app',
components:{
App
},
template:`
<App />
`
});
main.js
body{
background-color: green;
}
main.css
var App = {
template:'<div>我是一个入口组件</div>'
}; export default App;
App.js
(3)在打包css文件的时候需要安装插件 css-loader style-loader 在控制台执行如下命令下载安装
cnpm install css-loader style-loader -D
(4)此时package.json文件内容如下
{
"name": "css-loader1",
"version": "1.0.0",
"description": "",
"main": "main.js",
"scripts": {
"dev": "webpack --config ./webpack.dev.config.js",
"prod": "webpack --config ./webpack.prod.config.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"css-loader": "^2.1.1",
"style-loader": "^0.23.1"
}
}
(5)安装好了之后需要在webpack.dev.congfig.js文件中配置
// webpack ./main.js ./build.js
module.exports = {
// 入口
entry:{
// 可以有多个入口,也可以有一个,如果有一个就默认从这一个入口开始分析
"main":'./main.js'
},
output:{
filename:'./build.js'
},
watch:true,//文件监视改动 自动产出build.js
// 声明模块
// 包含各个loader
module:{
loaders:[
{
// /遇到后缀为.css的文件,webpack先用css-loader加载器去解析这个文件
// 最后计算完的css,将会使用style-loader生成一个内容为最终解析完的css代码的style标签,放到head标签里。
// webpack在打包过程中,遇到后缀为css的文件,就会使用style-loader和css-loader去加载这个文件。
test:/\.css$/,
loader:'style-loader!css-loader'
} ]
}
}
(6)运行npm run dev,后并在index.html 中引入生成的出口文件build.js
3、webpack配置打包img文件
(1)项目目录结构
(2)main.js App.js文件代码如下
// es6 Module
import Vue from './vue.js'
// 整个项目的入口文件
import App from './App.js' new Vue({
el:'#app',
components:{
App
},
template:`
<App />
`
});
main.js
import imgSrc from './1.jpg'
export default {
template:`
<div>
<img :src="imgSrc" alt="" />
</div>
`,
data(){
return {
imgSrc:imgSrc
}
}
};
App.js
(3)打包图片需要安装url-loader file-loader,执行如下命令下载
npm install url-loader file-loader -D
(4)此时package.json文件
{
"name": "css-loader1",
"version": "1.0.0",
"description": "",
"main": "main.js",
"scripts": {
"dev": "webpack --config ./webpack.dev.config.js",
"prod": "webpack --config ./webpack.prod.config.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"css-loader": "^2.1.1",
"file-loader": "^3.0.1",
"style-loader": "^0.23.1",
"url-loader": "^1.1.2"
}
}
(5)需要在webpack.config文件下
// webpack ./main.js ./build.js
module.exports = {
// 入口
entry:{
// 可以有多个入口,也可以有一个,如果有一个就默认从这一个入口开始分析
"main":'./main.js'
},
output:{
filename:'./build.js'
},
watch:true,//文件监视改动 自动产出build.js
// 声明模块
// 包含各个loader
module:{
loaders:[
{
// /遇到后缀为.css的文件,webpack先用css-loader加载器去解析这个文件
// 最后计算完的css,将会使用style-loader生成一个内容为最终解析完的css代码的style标签,放到head标签里。
// webpack在打包过程中,遇到后缀为css的文件,就会使用style-loader和css-loader去加载这个文件。
test:/\.css$/,
loader:'style-loader!css-loader'
},
{
test:/\.(jpg|png|jpeg|gif|svg)$/,
loader:'url-loader?limit = 3000'
} ]
}
}
注意点:当你图片的大小大于你这里设置的大小的时候,会生成一张额外的图片, 当你的图片大小小于你上面的大小引入的就是一张base64的图片
(6)演示
4、编译less
(1)项目文件
(2)main.js main.less代码如下
import './main.less'
main.js
@imgPath: './1.jpg'; body{
background-image:url(@imgPath);
}
main.less
(3)打包图片需要安装less-loader less,执行如下命令下载 因为less-loader是依赖于less的
npm install less-loader -D
npm install less -D
(4)此时package.json文件
{
"name": "css-loader1",
"version": "1.0.0",
"description": "",
"main": "main.js",
"scripts": {
"dev": "webpack --config ./webpack.dev.config.js",
"prod": "webpack --config ./webpack.prod.config.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"css-loader": "^2.1.1",
"file-loader": "^3.0.1",
"less": "^3.9.0",
"less-loader": "^4.1.0",
"style-loader": "^0.23.1",
"url-loader": "^1.1.2"
}
}
(4)在webpack.config文件夹中配置(注意你的路径)
var path = require('path')
// webpack ./main.js ./build.js
module.exports = {
// 入口
entry:{
// 可以有多个入口,也可以有一个,如果有一个就默认从这一个入口开始分析
"main":'./src/main.js'
},
output:{
//path:path.resolve('./dist'),//创建一个绝对路径,输入的时候输出一个dist文件
filename:'./src/build.js'
}, // 包含各个loader
module:{
loaders:[ {
test:/\.less$/,
loader:'style-loader!css-loader!less-loader'
} ]
},
watch:true//文件监视改动 自动产出build.js
// 声明模块
}
(5)完成
5、webpack将index.html 和build.js编译到同一个文件夹
当项目文件数目过多的时候,编译出来的build.js文件和index.html不是在同一个文件夹中,那么我们就需要手动改index.html中的引入路径
使用html-webpack-plugin插件可以在生成build.js的时候在同一文件夹下再生成一个index.html文件,
(1)下载
npm i html-webpack-plugin -D
(2)在congfig中配置
var path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin')
// webpack ./main.js ./build.js
module.exports = {
// 入口
entry:{
// 可以有多个入口,也可以有一个,如果有一个就默认从这一个入口开始分析
"main":'./main.js'
},
output:{
path:path.resolve('./dist'),
filename:'./build.js'
},
watch:true,//文件监视改动 自动产出build.js
// 声明模块
// 包含各个loader
module:{
loaders:[
{
// /遇到后缀为.css的文件,webpack先用css-loader加载器去解析这个文件
// 最后计算完的css,将会使用style-loader生成一个内容为最终解析完的css代码的style标签,放到head标签里。
// webpack在打包过程中,遇到后缀为css的文件,就会使用style-loader和css-loader去加载这个文件。
test:/\.css$/,
loader:'style-loader!css-loader'
},
{
test:/\.(jpg|png|jpeg|gif|svg)$/,
loader:'url-loader?limit = 3000'
} ]
}, plugins:[
new HtmlWebpackPlugin({
template:'./index.html' //这是是相对build.js的文件路径
})
] }
三、总结
1、webpack.config文件配置:注意路径
2、webpack打包css文件:需要安装css-loader style-loader
3、webpack配置打包img文件: 需要安装 url-loader file-loader旭(图片大小小于你设置的大小的时候引入base64格式 , 反之额外生成一张图片)
4、编译less文件: 需要安装 less less-loader (less-loader是依赖于less)
5、webpack将index.html 和build.js编译到同一个文件夹: 需要安装
html-webpack-plugin
Vue(基础七)_webpack使用工具(下)的更多相关文章
- Vue(基础七)_webpack打包工具用法(上)
一.前言 1.webpack原理 二.主要内容 1.webpack原理: (1)官网图:我们的项目有多个js, css文件的时候还需要考虑先引入哪一个后引入哪一个,因为这些js文件是相互依赖的,web ...
- Vue(基础七)_webpack(CommonsChunkPlug的使用)
---恢复内容开始--- 一.前言 1.多入口文件配置 2.CommonsChunkPlugin的用法 ...
- Vue(基础七)_webpack(webpack异步加载原理)
---恢复内容开始--- 一.前言 1.webpack异步加载原理’ 2.webpack.ensure原理 ...
- Java基础七(Eclipse工具)
今日内容介绍1.Eclipse开发工具2.超市库存管理系统 ###01Eclipse的下载安装 * A: Eclipse的下载安装 * a: 下载 * http://www.eclipse.org ...
- Vue基础之内部指令(下)
v-on绑定事件监听器 直接撸代码: <div id="app"> <h2>计数器</h2> number:{{number}} <but ...
- vue基础七
事件处理器 1.监听事件 可以用 v-on 指令监听 DOM 事件来触发一些 JavaScript 代码. <div id="example-1"> <butto ...
- 从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 十八║Vue基础: 指令(下)+计算属性+watch
回顾 今天来晚辣,给公司做了一个小项目,一个瀑布流+动态视频控制的DEMO,有需要的可以联系我,公司的项目就不对外展示了(一个后端程序员真的要干前端了哈哈哈). 书接上文,昨天正式的开始了Vue的代码 ...
- hadoop基础----hadoop实战(七)-----hadoop管理工具---使用Cloudera Manager安装Hadoop---Cloudera Manager和CDH5.8离线安装
hadoop基础----hadoop实战(六)-----hadoop管理工具---Cloudera Manager---CDH介绍 简介 我们在上篇文章中已经了解了CDH,为了后续的学习,我们本章就来 ...
- Bootstrap <基础七>按钮
任何带有 class .btn 的元素都会继承圆角灰色按钮的默认外观.但是 Bootstrap 提供了一些选项来定义按钮的样式,具体如下表所示: 以下样式可用于<a>, <butto ...
随机推荐
- How to proof Pi
可以把圆想象成一个无限增大角的正多边形,通过倍角公式即勾股定理进行迭代. sin2x=2sinxcosx
- 时频工具箱tftb
安装:set path 常规里更新 一.信号产生函数: amexpo1s 单边指数幅值调制信号amexpo2s 双边指数幅值调制信号amgauss 高斯幅值调制信号amrect 矩形幅值调制信 ...
- Atcoder Beginner Contest 121 D - XOR World(区间异或和)
题目链接:https://atcoder.jp/contests/abc121/tasks/abc121_d 题目很裸(Atcoder好像都比较裸 就给一个区间求异或和 n到1e12 肯定不能O(n) ...
- BZOJ3196二逼平衡树——线段树套平衡树(treap)
此为平衡树系列最后一道:二逼平衡树您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作: 1.查询k在区间内的排名2.查询区间内排名为k的值3.修改某一位值上的数值4.查询 ...
- Codeforces Round #467 Div. 1
B:显然即相当于能否找一条有长度为奇数的路径使得终点出度为0.如果没有环直接dp即可.有环的话可以考虑死了的spfa,由于每个点我们至多只需要让其入队两次,复杂度变成了优秀的O(kE).事实上就是拆点 ...
- 第五十五天 css基础入门
一.引入css的三种方式 1.行间式 <div style="width: 100px; height: 100px; background-color: red">& ...
- P1403 [AHOI2005]约数研究
原题链接 https://www.luogu.org/problemnew/show/P1403 这个好难啊,求约数和一般的套路就是求1--n所有的约数再一一求和,求约数又要用for循环来判断.... ...
- 【 HDU2966 】In case of failure(KD-Tree)
BUPT2017 wintertraining(15) #5E HDU - 2966 题意 给平面直角坐标系下的n个点的坐标,求离每个点和它最近点的距离的平方.\(2 \le n \le 10^5\) ...
- zabbix agent 自定义 UserParameter
有时候我们想让被监控端执行一个zabbix没有预定义的检测,zabbix的用户自定义参数功能提供了这个方法.我们可以在客户端配置文件zabbix_angentd.conf里面配置UserParamet ...
- 09 Zabbix4.0系统clone、mass update使用
点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 09 Zabbix4.0系统clone.mass update使用 1. clone使用: clo ...