搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发

webpack--1

前端傻狍子 2018-03-01

    webpack可以看做是模块打包机,他会分析你的项目结构,找到javascript模块以及其他语言将其转换和打包为合适的格式供浏览器使用

WebPack和Grunt以及Gulp相比有什么特性?

        Gulp/Grunt是一种能够优化前端的开发流程的工具,而WebPack是一种模块化的解决方案.

        Grunt和Gulp的工作方式是:在一个配置文件中,指明对某些文件进行类似编译,组合,压缩等任务的具体步骤,工具之后可以自动替你完成这些任务;

        Webpack的工作方式是:把你的项目当做一个整体,通过一个给定的主文件(如:index.js),Webpack将从这个文件开始找到你的项目的所有依赖文件,使用loaders处理它们,最后打包为一个(或多个)浏览器可识别的JavaScript文件。

        如果实在要把二者进行比较,Webpack的处理速度更快更直接,能打包更多不同类型的文件。

正式使用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

前端傻狍子

手机扫描上方二维码即可关注前端傻狍子微信公众号

前端傻狍子最新文章

精品公众号随机推荐