1.webpack介绍
Webpack 是一个前端资源的打包工具,它可以将js、image、css等资源当成一个模块进行打包。
Webpack 可以将js、css、png等多种静态资源 进行打包,使用webpack有什么好处呢?
1、模块化开发
程序员在开发时可以分模块创建不同的js、 css等小文件方便开发,最后使用webpack将这些小文件打包成一个文
件,减少了http的请求次数。
webpack可以实现按需打包,为了避免出现打包文件过大可以打包成多个文件。
2、 编译typescript、ES6等高级js语法
随着前端技术的强大,开发中可以使用javascript的很多高级版本,比如:typescript、ES6等,方便开发,
webpack可以将打包文件转换成浏览器可识别的js语法。
3、CSS预编译
webpack允许在开发中使用Sass 和 Less等原生CSS的扩展技术,通过sass-loader、less-loader将Sass 和 Less的
语法编译成浏览器可识别的css语法。
webpack的缺点:
1、配置有些繁琐
2、文档不丰富
2.安装Node.js
webpack基于node.js运行,首先需要安装node.js。
1.Node下载地址
2.选择安装目录
安装一直下一步即可,安装完检查path环境变量是否设置了
3.测试
node ‐v
返回当前node版本
3.安装NPM
1.下载NPM
node.js已经集成了npm工具,在命令提示符输入 npm -v 可查看当前npm版本
2.设置包路径
包路径就是npm从远程下载的js包所存放的路径。
使用 npm config ls
查询NPM管理包路径
NPM默认的管理包路径在C:/用户/[用户名]/AppData/Roming/npm/node_meodules,为了方便对依赖包管理,我
们将管理包的路径设置在单独的地方,我设置在node.js的目录下,创建npm_modules和
npm_cache,执行下边的命令:
本教程安装node.js在D:\Program Files\nodejs下所以执行命令如下:
npm config set prefix "C:\Program Files\nodejs\npm_modules"
npm config set cache "c:\Program Files\nodejs\npm_cache"
3.安装webpack
webpack安装分为本地安装和全局安装:
本地安装:仅将webpack安装在当前项目的node_modules目录中,仅对当前项目有效。
全局安装:将webpack安装在本机,对所有项目有效,全局安装会锁定一个webpack版本,该版本可能不适用某个
项目。全局安装需要添加 -g 参数
1.本地安装:
在门户目录下
npm install --save-dev webpack 或 cnpm install --save-dev webpack
npm install --save-dev webpack-cli (4.0以后的版本需要安装webpack-cli)
2.全局安装加-g,如下:
全局安装就将webpack的js包下载到npm的包路径下。
npm install webpack -g 或 cnpm install webpack -g
3.安装webpack指定的版本:
本教程使用webpack3.6.0,安装webpack3.6.0:
进入webpacktest测试目录,运行:
cnpm install --save-dev webpack@3.6.0
全局安装:(推荐)
npm install webpack@3.6.0 -g或 cnpm install webpack@3.6.0 -g
测试:
在cmd状态输入webpack,出现如下提示说明 webpack安装成功
4.入门程序
4.1.定义模块
1.定义model01.js
序使用的加法运算的js方法抽取到一个js文件,此文件就是一个模块
// 定义add函数
function add(x, y) {
return x + y
}
// function add2(x, y) {
// return x + y+1
// }
// 导出add方法
export default add;
// module.exports ={add,add2};//如果有多个方法这样导出
// module.exports.add2 = add2//如果有多个方法也可以这样导出
2.定义main.js
main.js是本程序的js主文件,包括如下内容:
1、在此文件中会引用model01.js模块
2、引用vue.min.js(它也一个模块)
3、将html页面中构建vue实例的代码放在main.js中。
//导入model01
//var {add}=require("./model01")
import add from'./model01';
var Vue=require("./vue.min")
var vm=new Vue({
el:'#app', //vm接管app区域的管理
data:{
name:'哈哈',
num1:0,
num2:0,
result:0,
url:"http://www.xuecheng.com",
size:80,
list:[1,2,3,4,5],
user:{uname:'itcast',age:10},
userlist:[
{user:{uname:'itcast',age:10}},
{user:{uname:'ithah',age:11}},
]
},
methods:{
change:function()
{
//调用需要this
this.result=add(Number.parseInt(this.num1),Number.parseInt(this.num2));
}
}
})
3.打包测试
1、进入程序目录(shift+右键可以在当然目录打开 powershell 与可以 cmd cd进入),执行webpack main.js build.js
,这段指令表示将main.js打包输出为 build.js文件
执行完成,观察程序目录是否出现build.js。
在html中引用build.js
<!DOCTYPE html>
<html lang="en" xmlns:v‐on="http://www.w3.org/1999/xhtml">
<head>
<meta charset="UTF‐8">
<title>vue.js入门程序</title>
</head>
<body>
<div id="app">
<!‐‐{{name}}解决闪烁问题使用v‐text‐‐>
<a v‐bind:href="url"><span v‐text="name"></span></a>
<input type="text" v‐model="num1">+
<input type="text" v‐model="num2">=
<span v‐text="result"></span>
<!‐‐{{num1+num2}}‐‐>
<!‐‐<input type="text" v‐model="result">‐‐>
<button v‐on:click="change">计算</button>
<!‐‐ 在Vue接管区域中使用Vue的系统指令呈现数据
这些指令就相当于是MVVM中的View这个角色 ‐‐>
</div>
</body>
<script src="build.js"></script>
<script>
</script>
</html>
5.webpack-dev-server
webpack-dev-server开发服务器,它的功能可以实现热加载 并且自动刷新浏览器。
创建一个新的程序目录,这里我们创建webpacktest02目录,将webpack入门程序的代码拷贝进来,并在目录下创
建src目录、dist目录。
将main.js和model01.js拷贝到src目录。
5.1 安装配置
1.安装webpack-dev-server
使用 webpack-dev-server需要安装webpack、 webpack-dev-server和 html-webpack-plugin三个包。
cnpm install webpack@3.6.0 webpack-dev-server@2.9.1 html-webpack-plugin@2.30.1 --save-dev
安装完成,会发现程序目录出现一个package.json文件,此文件中记录了程序的依赖。
2、配置webpack-dev-server
在package.json中配置script
{
"scripts": {
"dev": "webpack-dev-server --inline --hot --open --port 10000"
},
"devDependencies": {
"html-webpack-plugin": "^2.30.1",
"webpack": "^3.6.0",
"webpack-dev-server": "^2.9.1"
}
}
–inline:自动刷新
–hot:热加载
–port:指定端–open:自动在默认浏览器打开
–host:可以指定服务器的 ip,不指定则为127.0.0.1,如果对外发布则填写公网ip地址
5.2 配置webpack.config.js
//引用html-webpack-plugin
var htmlwp = require('html-webpack-plugin');
module.exports={
entry:'./src/main.js', //指定打包的入口文件
output:{
path : __dirname+'/dist', // 注意:__dirname表示webpack.config.js所在目录的绝对路径
filename:'build.js' //输出文件
},
plugins:[
new htmlwp({
title: '首页', //生成的页面标题<head><title>首页</title></head>
filename: 'index.html', //webpack‐dev‐server在内存中生成的文件名称,自动将build注入到这个页面底部,才能实现自动刷新功能
template: './src/vue_02.html' //根据index1.html这个模板来生成(这个文件请程序员自己生成)
})
]
}
5.3启动
进入 目录下
npm run dev
自动刷新只有在修改这个src中的文件时才刷新
5.4debug调试
1.在webpack.config.js中配置:
devtool: 'eval-source-map',
2.在js中跟踪代码的位置上添加debugger
// 定义add函数
function add(x, y) {
debugger
return x + y
}
如果出现bug可以评论