学习笔记 一步步了解webpack
前言
demo 地址: https://github.com/yy8597/webpack-demos
之前学习了 broswerify,发现确实很好用。虽然没有 grunt 那样丰富的配置和插件,但就是觉得“恩!这就是我想要的结构”。
webpack 感觉就是 broswerify 的进阶版,怎么说呢:
- 有更多可配置内容
- 比起 broswerify 一股脑得打成单包更智能。
安装
npm install webpack -g
-g 方便我们在命令行直接使用 webpack
使用
基本命令 demo1
首先建立两个文件
//entry.js
document.write("It works.");
//index.html
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<script type="text/javascript" src="bundle.js" charset="utf-8"></script>
</body>
</html>
执行 webpack
$ webpack ./entry.js bundle.js
生成 bundle.js,然后打开 index.html 就可以看到
添加依赖 demo2
增加一个文件
//content.js
module.exports = "It works from content.js.";
我们修改 entry.js 加载 content.js 的内容
//document.write("It works.");
document.write(require("./content.js"));
同样执行
$ webpack ./entry.js bundle.js
在浏览器中看到
done~
webpack 分析你的入口文件(entry.js)所依赖的其他文件(模块),这些文件都会被打包到 bundle.js中。webpack 会分配给每个模块一个唯一的 Id,在 bundle.js 中通过这个 Id 来访问每个模块。在程序启动的时候只会处理入口模块(entry.js), require 方法会在执行时即时地处理依赖模块。
打包 css demo3
webpack 只能处理 javascript,要处理 css 就需要安装css-load来转换 css 为 js,还要安装style-loader 将转换后的 css 加载到 dom 中。
$npm install css-loader style-loader --save
接着增加 css 文件
body {
background: yellow;
}
修改 entry.js,然后就能看到效果
require("!style!css!./style.css");
document.write(require("./content.js"));
同样执行
$ webpack ./entry.js bundle.js
通过 “!style!css!” 这样的前缀,可以把文件进行一系列的转化,最终变成 javascript 的一个模块。
命令行绑定 loaders
如果我们不想写过长的 require : require("!style!css!./style.css");,简化为require("./style.css")
或者我们喜欢灵活定制 css 文件的转化方式。
修改 entry.js
//require("!style!css!./style.css");
require("./style.css");
document.write(require("./content.js"));
执行下面的命令:
$ webpack ./entry.js bundle.js --module-bind "css=style\!css"
官网说明在这有个错误,
css=style\!css里面少了个反斜杠,原因是叹号在 bash 里有特殊意义
添加 webpack.config.js demo4
理解了上面的 demo 以后,接下来我们就可以在项目根目录下新建一个webpack.config.js ,然后通过一句命令$ webpack就能打包我们的项目。
//webpack.config.js
module.exports = {
entry: "./entry.js",
output: {
path: __dirname,
filename: "bundle.js"
},
module: {
loaders: [
{ test: /\.css$/, loader: "style!css" }
]
}
};
webpack 命令会尝试读取同目录中的 webpack.config.js 文件。
And More
还可以通过一些参数使得打包过程可视化
$ webpack --progress --colors
--progress 打印打包日志
--colors -c 带颜色的日志(官方是这么描述的,但我没看到颜色...)
当然还有 watch 功能
$ webpack --progress --colors --watch
必须的要有 server
$ npm install webpack-dev-server -g
$ webpack-dev-server --progress --colors
~ 完 ~
这里只是介绍了 webpack 基本的用法
demo 基本都是翻译自webpack/getting-started
更多详细和进阶的内容还是推荐去官网看看
参考
学习笔记 一步步了解webpack的更多相关文章
- webpack学习笔记一:安装webpack、webpack-dev-server、内存加载js和html文件、loader处理非js文件
一 .webpack学习环境准备: 1:window系统 2:安装node.js 官方网址 下载好后下一步下一步安装即可 安装步骤略过....... 3:nrm的安装 打开cmd命令控制台 输入:n ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- Webpack新手入门教程(学习笔记)
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; text-align: center; font: 30.0px Helvetica; color: #000000 } ...
- Webpack4 学习笔记一初探Webpack
前言 此内容是个人学习笔记,以便日后翻阅.非教程,如有错误还请指出 Webpack 打包文件 支持JS模块化 模式: production(0配置默认), development(生产环境) 更详细的 ...
- 更博不能忘——webpack学习笔记
webpack是前端构建系统就像grunt和gulp(之前有学习过grunt所以也就大概明白webpack是个什么东西),所以说前端技术大部分还真是相通的,现在觉得当时多看的东西并不白费,虽然长时间不 ...
- VueJs 学习笔记
VueJs学习笔记 参考资料:https://cn.vuejs.org/ 特效库:TweenJS(补间动画库) VelocityJS(轻量级JS动画库) Animate.css(CSS预设动画库) ...
- WeX5学习笔记
目录 WeX5学习笔记... 1 1.轻松看透WeX5产品能力和技术... 1 2.WeX5可以怎么玩?... 3 一.纯本地App. 3 二.关联一个网站,希望默认就打开某页... 4 三.UI设计 ...
- Vue.js学习笔记(2)vue-router
vue中vue-router的使用:
- RAC学习笔记
RAC学习笔记 ReactiveCocoa(简称为RAC),是由Github开源的一个应用于iOS和OS开发的新框架,Cocoa是苹果整套框架的简称,因此很多苹果框架喜欢以Cocoa结尾. 在学习Re ...
随机推荐
- Scroll View 控件以Thumbnail的方式显示一个目录的全部图片,相似图片浏览器
MAC : XCode -> Scroll View 控件以Thumbnail的方式显示一个目录的全部图片,类似图片浏览器 STEP1:将两个目录复制到project里面ImageBrowser ...
- 图解:Activity生命周期
当用户需要对手机通过屏幕进行交互时,比如打一个电话,拍张照片,发送一个邮件,或者查看地图.开发者就需要实现一个活动(Activity).每个活动都将作为一个提供用户使用接口的窗口.它可以填满整个屏幕, ...
- Atitit. .net c# web 跟clientwinform 的ui控件结构比較
Atitit. .net c# web 跟clientwinform 的ui控件结构比較 .net 4.5 webform Winform 命名空间 System.Web.UI.WebContro ...
- easyui LinkButton
http://www.zi-han.net/case/easyui/menu&button.html
- Linux 0.12 内核管理存储器
Linux 0.12 内核管理存储器 其分段,用分段的机制把进程间的虚拟地址分隔开. 每一个进程都有一张段表LDT.整个系统有一张GDT表.且整个系统仅仅有一个总页表. 其地址翻译过程为: 程序中给出 ...
- HTML+CSS样式设置——CSS一学就会
HTML+CSS样式设置 CSS:(Cascading Style Sheets)层叠样式设置表. 网页的展示效果跟其排版有非常大的关系.排版则主要依靠CSS来设置.调节. 以下说CSS与HTML的联 ...
- JAVA学习课第二十八届(多线程(七))- 停止-threaded多-threaded面试题
主密钥 /* * wait 和 sleep 差别? * 1.wait能够指定时间也能够不指定 * sleep必须指定时间 * 2.在同步中,对CPU的运行权和锁的处理不同 * wait释放运 ...
- 微信公众平台入门--PHP,实现自身的主动回复文本,图像,点击事件
微通道基本应答代码,然后单击事件函数,部署了sae要么bae,基本自由妥妥server 号了 <?php define("TOKEN", "mzh"); ...
- iOS8数字键盘加左下角完成button
iOS8数字键盘加左下角完成button的核心代码如下面: - (void)addDoneButtonToNumPadKeyboard { UIButton *doneButton = [UIButt ...
- GDB十几分钟教程
GDB十分钟教程 作者: liigo原文链接: http://blog.csdn.net/liigo/archive/2006/01/17/582231.aspx日期: 2006年1月16日 本文写给 ...