webpack可以看做是模块打包机,他会分析你的项目结构,找到javascript模块以及其他语言将其转换和打包为合适的格式供浏览器使用
Gulp/Grunt是一种能够优化前端的开发流程的工具,而WebPack是一种模块化的解决方案.
Grunt和Gulp的工作方式是:在一个配置文件中,指明对某些文件进行类似编译,组合,压缩等任务的具体步骤,工具之后可以自动替你完成这些任务;
Webpack的工作方式是:把你的项目当做一个整体,通过一个给定的主文件(如:index.js),Webpack将从这个文件开始找到你的项目的所有依赖文件,使用loaders处理它们,最后打包为一个(或多个)浏览器可识别的JavaScript文件。
如果实在要把二者进行比较,Webpack的处理速度更快更直接,能打包更多不同类型的文件。
1.安装
新建一个文件夹,在终端中转到该文件夹后执行指令完成安装
//全局安装
npm install -g webpack
//安装到你的项目目录
npm install --save-dev webpack
2.使用前的准备
a.在终端中使用npm init
命令自动创建package.json文件
b.在本项目中安装Webpack作为依赖包
// 安装Webpack
npm install --save-dev webpack
c.回到之前的空文件夹,并在里面创建两个文件夹,app文件夹和public文件夹,app文件夹用来存放原始数据和我们将写的JavaScript模块,public文件夹用来存放之后供浏览器读取的文件(包括使用webpack打包生成的js文件以及一个index.html
文件)。接下来我们再创建三个文件:
index.html
--放在public文件夹中;
Greeter.js
-- 放在app文件夹中;
main.js
-- 放在app文件夹中;
d.我们在index.html文件中写入最基础的html代码,它在这里目的在于引入打包后的js文件(这里我们先把之后打包后的js文件命名为bundle.js
,之后我们还会详细讲述)。
<!-- index.html -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Webpack Sample Project</title>
</head>
<body>
<div id='root'>
</div>
<script src="bundle.js"></script>
</body></html>
我们在Greeter.js
中定义一个返回包含问候信息的html
元素的函数,并依据CommonJS规范导出这个函数为一个模块:
// Greeter.js
module.exports = function() {
var greet = document.createElement('div');
greet.textContent = "Hi there and greetings!";
return greet;
};
main.js
文件中我们写入下述代码,用以把Greeter模块
返回的节点插入页面。
//main.js
const greeter = require('./Greeter.js');
document.querySelector("#root").appendChild(greeter());
3.正式使用webpack
webpack可以在终端中使用,在基本的使用方法如下:
# {extry file}出填写入口文件的路径,本文中就是上述main.js的路径,
# {destination for bundled file}处填写打包文件的存放路径
# 填写路径的时候不用添加{}
webpack {entry file} {destination for bundled file}
# webpack非全局安装的情况
node_modules/.bin/webpack app/main.js public/bundle.js
结果可以看出webpack
同时编译了main.js
和Greeter,js
,现在打开index.html
,可以看到结果
Hi there and greetings!
版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《webpack--1》的版权归原作者「前端傻狍子」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458
文章来源: 阅读原文
前端傻狍子微信公众号:gh_1789dd557ae3
手机扫描上方二维码即可关注前端傻狍子微信公众号