随着前端的项目愈来愈庞大复杂,js代码再也不像过去那样简单,而是变得十分庞大,特别是当单页应用的出现,一个前端的项目可能须要大量的模块来支持,这就致使你的项目的代码文件的会很是的多,这个时候项目初次加载性能方面肯能会比较差,这个时候就须要使用一些优化手段,好比说webpack打包。html
npm install -g webpack@3.3.5
webpack -v
就会显示版本号咱们以前在cmd中输入的一些内容就在这里了,做者、版本号、描述均可以在这里进行修改。前端
而后咱们就能够开始局部安装webpack了在项目文件的cmd中输入npm i -s-dev webpack@3.6.0就能够了安装成功后咱们会在package.json中看到这么一段代码 node
若是安装报错那么注意三个问题webpack
当咱们上面的安装步骤完成以后咱们的项目的目录会变成这样:git
在开始建立咱们的项目以前咱们先来安装一个插件live-server安装方法以下:web
打开cmd在其中输入npm i -g live-server
这个是安装全局的live-server。npm
那么接下来就能够开始咱们项目的构造了:json
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<div id="a"></div> <script src="bundle.js"></script>
</body>
</html>
复制代码
document.getElementById('a').innerHTML='<h1>你好webpack</h1>'复制代码
//简单的解释一下这个命令就是将src下的main.js文件打包到dist下打包后的文件名叫bundle.js
webpack src/main.js dist/bundle.js
复制代码
打开dist,就能够看见你好webpack浏览器
到这里咱们的webpack项目已经搭建完毕也首次的打包好了咱们的项目。bash
上面的一通操做虽然也是将咱们的项目成功的打包,可是操做的方式很麻烦,可是在真正的项目项目中是不会使用这种方法来打包,太low了不够酷炫,接下就使用一个酷炫的方法来进行打包,那就是经过配置文件的方法来进行打包。
可是若是咱们想要玩这个操做的话首先得会一点node的知识,就是node的核心模块的使用,不须要知道的太多只须要知道怎么导入核心模块,而后path这个具名模块有什么用就好了。
//引入node的path模块,path这个模块其实也就是取到文件的路径进行各类操做const path=require('path');module.exports={ //项目入口 entry:{ //这里的entry的内容就是你的入口文件的文件路径 entry:'./src/main.js' }, //出口 output:{ //这里的path的这个方法是获取文件的绝对路径 //这个__dirname是node的一个全局变量他的做用就是存储文件所在目录的完整路径 //这样作是为了方便项目的开发 path:path.resolve(__dirname,'dist'), //这filename就是打包后的文件名称 filename:'bundle.js' }}复制代码
若是说这个配置的打包方式就只有这个功能的话,那可能还体现不出来它的优点那么接下来的的这个操做就能够明显体现出它的优点了,若是说我想要一次打包多个文件呢?
//引入node的path模块 const path=require('path');module.exports={ //项目入口 entry:{ //这里的entry的内容就是你的入口文件的文件路径 //这里的 main:'./src/main.js', main1:'./src/main1.js'
}, //出口 output:{ path:path.resolve(__dirname,'dist'), //这filename使用[name].js就是设置打包好以后的文件和入口文件路径所设置的名字同名 filename:'[name].js' }}复制代码
上面的项目我所使用的服务器是live-server这个服务器,其实webpack本身是有服务器的这个服务器,并且很是方便与开发,由于他支持热部署,接下来我来介绍一下这个怎么使用。
打开cmd切换到项目输入npm install webpack-dev-server@2.8.2 --save-dev
注意我这里是选择了版本的,若是你不去写版本的话,他会直接给你安装webpack4的webpack-dev-server,这个和webpack3是彻底不一样,webpack4和webpack3彻底不同,虽然都是webpack。
你若是想要使用webpack-dev-server那么你首先得有webpack.config.js这个webpack的配置文件,我接下来的内容是接着上面的项目继续改造的。
你须要在webpack.config.js添加上devServer这个对象
//引入node的path模块 const path=require('path');module.exports={ //项目入口 entry:{ //这里的entry的内容就是你的入口文件的文件路径 //这里的 main:'./src/main.js', main1:'./src/main1.js'
}, //出口 output:{ path:path.resolve(__dirname,'dist'), //这filename使用[name].js就是设置打包好以后的文件和入口文件路径所设置的名字同名 filename:'[name].js' }, module:{}, plugins:[], devServer:{ //你所须要服务的项目的更新 contentBase:path.resolve(__dirname,'dist'), //服务器ip地址 host:'192.168.5.100', //服务器压缩 compress:true, //项目端口号 port:8080 }}复制代码
这样就算是把配置文件写好了接下来就是须要在package.js中去写一下命令由于你直接在cmd中去输入命令webpack-dev-server是没有用的在scripts中配置一下你
package.json
{ "name": "webpacktest", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "server": "webpack-dev-server" }, "author": "", "license": "ISC", "devDependencies": { "webpack": "^3.6.0", "webpack-dev-server": "^2.8.2" }}
复制代码
最后在cmd中去输入命令npm run server,这样webpack-dev-server服务器就动了!
注意:webpack-dev-server虽然支持热部署可是你须要注意下你的webpack的版本,若是你的版本是3.6.0一下的那么webpack-dev-server是不支持热部署的。
这个暂时就先到这里,下一篇内容主要就是项目中经常使用的一些操做了!