webpack入门教程--3
webpack打包还可以使用配置文件,我们先创建一个叫做webpack.config.js的文件。这里需要注意一下,这个JS文件的名字不是我们胡乱写的,也是不能更改的,因为webpack 命令执行后,会默认载入当前目录webpack.config.js 文件。
然后在这个JS文件中我们输入以下代码:
module.exports = {
entry: "./book1.js",
output: {
path: __dirname,
filename: "bundle.js"
},
module: {
loaders: [
{ test: /\.css$/, loader: "style-loader!css-loader" }
]
}
};
,接下来我们要在Git中输入webpack命令;
webpack
然后回车,我这里是报了个错,
$ webpack
The CLI moved into a separate package: webpack-cli.
Please install 'webpack-cli' in addition to webpack itself to use the CLI.
-> When using npm: npm install webpack-cli -D
-> When using yarn: yarn add webpack-cli -D
是告诉我们缺少东西,不要着急,我们安装就可以了;
$ cnpm install webpack-cli -D
安装成功以后,然后在输入webpack就可以了。这时候就可以编译通过了。
我们就可以直接在index.html中查看已经打包成功了,如果我们不确定的话,我么你可以更改css文件中的颜色,让我们的改变更容易察觉出来。
当然,webpack的插件是非常丰富的,我们需要在webpack.config.js文件中添加一个plugins 选项。用于完成一些 loader 不能完成的工。webpack 自带一些插件,你可以通过 cnpm 安装一些插件。使用内置插件需要通过以下命令来安装:
cnpm install webpack --save-dev
修改 webpack.config.js,代码如下:
var webpack=require('webpack'); module.exports = {
entry: "./book1.js",
output: {
path: __dirname,
filename: "bundle.js"
},
module: {
loaders: [
{ test: /\.css$/, loader: "style-loader!css-loader" }
]
},
plugins:[
new webpack.BannerPlugin('这是注释--程先生哈的博客园')
]
};
然后运行:Git命令,webpack,然后我们就可以发现bundle.js。可以看到我们的头部出现了我们制定的注释信息;到这里其实我们就已经简单的讲解了webpack打包。但是在实际的工作开发环境中,当项目逐渐变大,webpack 的编译时间会变长,可以通过参数让编译的输出内容带有进度和颜色。
webpack --progress --colors
如果不想每次修改模块后都重新编译,那么可以启动监听模式。开启监听模式后,没有变化的模块会在编译后缓存到内存中,而不会每次都被重新编译,所以监听模式的整体速度是很快的。
webpack --progress --colors --watch
当然,我们可以使用 webpack-dev-server 开发服务,这样我们就能通过 localhost:8080 启动一个 express 静态资源 web 服务器,并且会以监听模式自动运行 webpack,在浏览器打开 http://localhost:8080/ 或 http://localhost:8080/webpack-dev-server/ 可以浏览项目中的页面和编译后的资源输出,并且通过一个 socket.io 服务实时监听它们的变化并自动刷新页面。
# 安装
cnpm install webpack-dev-server -g # 运行
webpack-dev-server --progress --colors
最新文章
- jsp页面显示问题
- ArcGIS Server开发教程系列(2)配置ARCMAP和ARCCatalog发布服务
- Java多线程系列--“基础篇”01之 基本概念
- 【Alpha版本】冲刺阶段——Day 7
- ACM 另一种阶乘问题
- AOJ 740 求和
- error LNK2019: 无法解析的外部符号 ___glutInitWithExit@12,该符号在函数 _glutInit_ATEXIT_HACK@8 中被引用 1>;GEARS.obj : er
- css斜线
- 监听UITextFiled输入文字长度的变化
- Linux操作系统工作的基础
- easyui plugin —— etreegrid:CRUD Treegrid
- Asp.Net Identity自定义user类的运用,ClaimsIdentity
- Iframe和父窗口互调方法的集合
- SQLServer中SQL语句与可执行二进制语句
- AC Dream1069
- Linux命令 file
- 原创python:windows解决genymotion appium adb 的问题。
- kafka集群partition分布原理分析
- 动态规划法(五)钢条切割问题(rod cutting problem)
- [LeetCode&;Python] Problem 905: Sort Array By Parity
热门文章
- vi 配置
- 深入解析Java反射-invoke方法
- harbor在谷歌云上搭建 日志
- 使用BurpSuite进行双文件上传拿Webshell
- Android 音视频开发(五):使用 MediaExtractor 和 MediaMuxer API 解析和封装 mp4 文件
- CSS3禁止用户选中文字——user-select: none;
- [Swift]LeetCode541. 反转字符串 II | Reverse String II
- [Swift]LeetCode640. 求解方程 | Solve the Equation
- [Swift]LeetCode836. 矩形重叠 | Rectangle Overlap
- [Swift]LeetCode862. 和至少为 K 的最短子数组 | Shortest Subarray with Sum at Least K