webpack 最简单的入门教程(基础的文件打包以及实现热加载)
2018-02-08 14:18
1006 查看
webpack安装
我们可以用npm安装webpack,要用npm我们就需要安装node.js环境,作为我们的平台。下载node.js
下载好之后安装,我们在cmd或者GitBashHere中输入
npm -v node -v
如果出现版本号,说明你安装成功了!
现在我们全局安装webpack,这样你就不需要每创建一个项目就安装一次了
npm install webpack -g //-g代表全局安装
运行结果大概如下
从一个项目开始用webpack
首先创建一个文件夹,我的文件夹是test01在test01中输入下面的内容,你会发现文件夹中生成了一个package.json的文件,这是一个标准的npm说明文件,里面包含了丰富的信息,包括当前项目的依赖模块,自定义的脚本任务等等。
npm init
提示中按回车就好,如果你不准备在npm中发布你的模块。
接下来我们将webpack安装到我们的目录中,作为依赖
npm install webpack --save-dev
此时文件夹中多了node-modules和package-lock.json
尝试打包
我们在根目录下创建如下文件夹及文件因为打包css文件需要安装依赖,所以我们先打包js文件作为尝试
在app.js中
module.exports = console.log("Hello Webpack!");
index.js中
require("./app.js");
index.html中
<body> <h1>Hello</h1> <script src="./src/bundle.js"></script> </body>
在根目录下运行
webpack ./src/js/index.js ./src/bundle.js
此时在src文件夹下面生成了一个bundle文件
在浏览器中打开index.html文件,app.js中的内容被打包到bundle.js中了。
打包css文件
打包css文件需要安装依赖npm install css-loader --save-dev npm install style-loader --save-dev
在index.css文件中添加样式,并在index.js中引入css文件
require("style-loader!css-lo c4d0 ader!../css/index.css");
再打包一遍,此时样式被加载到文件中
打包多个文件
在entry中放入多个入口文件,output中的路径可以不变,filename复制下面的代码,会分别生成对应于入口文件的js文件module.exports = { // 多文件 entry: { build: __dirname + "/src/js/index.js", //生成build.js list: __dirname + "/src/js/entry.js", //生成list.js }, output: { path: __dirname + "/out", filename: "[name].js" }, module: { loaders: [ { test:/\.css$/,loader:'style-loader'}, { test:/\.css$/,loader:'css-loader'} ] } }
简化打包
在根目录下创建一个叫webpack.config.js的文件,内容如下:module.exports = { entry: __dirname+ "/src/js/index.js", //入口文件 output: { path: __dirname + "/src", //打包后文件的路径 filename: "bundle.js" //打包后文件名称 } }
在命令行中只需要输入webpack即可实现打包,记住打包命令一定是在根目录下面,不要手误
webpack
热加载(使用webpack构建本地服务器)
我们每次改变文件中的内容,都需要重新打包,这样就加重了我们的任务量,有了热加载,我们就不需要打包,程序会自动打包,并且在浏览器上显示出来。npm install webpack-dev-server -g //安装 npm install --save-dev webpack-dev-server //添加到依赖
修改配置文件webpack.conf.js
module.exports = { devtool: 'eval-source-map', entry: __dirname + "/src/js/index.js", output: { path: __dirname + "/src", // path: "/", filename: "bundle.js" }, devServer: { historyApiFallback: true, //如果设置为true,所有的跳转将指向index.html inline: true //设置为true,当源文件改变时会自动刷新页面 } }
devServer中还有其他可以配置的参数,后面的链接中有比较详细的介绍
package.json
{ "name": "test01", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "server": "webpack-dev-server --open" //加入这一行,json文件中不支持注释,需要删除 }, "author": "", "license": "ISC", "devDependencies": { "css-loader": "^0.28.7", "style-loader": "^0.19.1", "webpack": "^3.10.0" } }
此时热加载就配置好了,在命令行中输入
npm run server
浏览器窗口会自己打开,并且当你修改文件时,浏览器会自动加载,你可以修改css看看效果
参考地址:入门Webpack
若有错误的地方,望指出,转载请注明出处
相关文章推荐
- vue最简单的入门教程+实战+Vue2+VueRouter2+webpack(三)
- java基础:Web服务器原理 以及 用java简单实现
- vue最简单的入门教程+实战+Vue2+VueRouter2+webpack(五)
- Android基础入门教程——5.2.5 Fragment实例精讲——新闻(购物)类App列表Fragment的简单实现
- C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志
- vue最简单的入门教程+实战+Vue2+VueRouter2+webpack(四)
- Node初学者入门,一本全面的NodeJS教程,微小的web框架,能实现文件上传功能以及数据解析功能
- vue最简单的入门教程+实战+Vue2+VueRouter2+webpack(二)
- 一步步深入学习webpack(入门困惑express和dev-server区别及分别使用dev-server和webpack-hot-middleware实现的热加载区别)
- webpack最简单的入门教程里bundle.js之运行单步调试的原理解析
- 关于ansible基础入门和功能实现教程的更新页面
- [unity基础教程]Unity3D实现动态加载游戏资源(转)
- ps消失点滤镜的运用方法以及简单新手入门教程
- JVM类加载的原理及实现基础教程
- SpringMVC 基础教程 简单入门实例
- [unity基础教程]Unity3D实现动态加载游戏资源(转)
- Python学习入门基础教程(learning Python)--2 Python简单函数设计 .
- 树莓派实现web控制GPIO教程(安装方法更简单,网页效果更好)
- 深入剖析Spring Web源码(八) - 处理器映射,处理器适配器以及处理器的实现 - 基于简单控制器流程的实现