webpack初体验之模块化开发

写在前面的话

上次写过一篇关于webpack入门的博客,当时只是说借助node来完成开发,并用webpack打包以让浏览器识别。其实其主要思想就是实现前端模块化开发。

众所周知,历史上,JavaScript 一直没有模块(module)体系,无法将一个大程序拆分成互相依赖的小文件,再用简单的方法拼装起来。这在开发大型的、复杂的项目时就变得很困难。这就需要一种模块加载机制,在ES6之前,就有一些模块加载方案,比如CommonJS和AMD,上篇文章就是用到CommonJS规范。但现在,ES6已经填补了Module这块空白。下面就简单说下利用webpack实现前端模块化开发。

实例

介绍

本文主要介绍webpack的入门,因为我自己也是刚上手webpack,还在学习阶段,所以会讲得很基础。对于没用过webpack的童鞋,看完能懂就是我的目的。你也可以参考我的上篇博客webpack入门。另外关于ES6模块化,我觉得你应该要提前会懂,我就不讲了,这里有更好的文档  ES6 Module

使用webpack之前的准备

新建一个文件夹,比如叫 webpack-demo,这个就是你的项目目录,然后在这个文件夹里再新建一个 src文件夹,名字可任意,在 src 文件夹里,如图新建几个文件:

每个文件其实都是一个模块,

a.js中:

export default function(){
    console.log(‘Module A‘);
}

b.js中:

export default function(){
    console.log(‘Module B‘);
}

index.js中:

import A from ‘./a.js‘
import B from ‘./b.js‘

A();
B();

index.html中:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Webpack模块化开发</title>
</head>
<body>
    <script src="./index.js"></script>
</body>
</html>

很显然,这就是一个模块化开发过程,html文件引入index.js,而index.js又依赖于a.js和b.js。我们想要的结果是在浏览器中打开html文件时,控制台中打印出:

Module A
Module B

然而事实上,当我们打开控制台时,显示:

这是因为目前我们前端开发,浏览器还不支持模块化,想要实现模块化功能,需借助webpack。

安装webpack

在此之前,你需要安装好node,并对npm有些了解,node安装完就自带了npm。

终端进入 webpack-demo 文件夹里,执行:

npm init 

输入这个命令后,终端会问你一系列诸如项目名称,项目描述,作者等信息,一路回车默认即可。

你也可以执行:

npm init -y

以避免被问一些问题。

这个命令执行后,会自动生成一个package.json文件,这是一个标准的npm说明文件,里面蕴含了丰富的信息,包括当前项目的依赖模块,自定义的脚本任务等等。

接下来,就在本项目里安装webpack依赖,同样是在 webpack-demo 文件夹里,执行:

npm install webpack --save-dev

可能会等一会儿,执行完毕后会生成一个node_modules文件夹,可能还有一个package-lock.json文件,你先不必在意它们干嘛的。

安装完webpack后,还需要新建一个webpack配置文件,默认文件名是webpack.config.js

完成以上所有步骤后,文件夹的内容如下:

配置webpack.config.js文件

接下来,我们来配置一下 webpack.config.js 这个文件:

var path = require(‘path‘);

module.exports = {
    entry:‘./src/index.js‘,
    output:{
        path:path.join(__dirname,‘dist‘),
        filename:‘main.js‘
    }
}

entry是入口文件地址,本项目中,需引用的是index.js文件,所以它就是入口文件;

output定义出口,path是打包后的文件存储路径,它必须是一个绝对路径,可以借助node中的path模块,来拼接一个绝对路径。dist是一个文件夹,用来存储打包文件,没有则自动创建。filename则定义打包后的文件名,此文件就是存储在dist中的。

打包

配置好文件后,在终端执行命令:

webpack

如图:

此时就是打包成功了,我们去项目目录看一下,会发现多了一个dist目录,里面有main.js文件:

此时我们就可以用这个main.js文件了,将它引入index.html中,替换index.js:

<script src="../dist/main.js"></script>

保存,在浏览器中打开,控制台中:

发现此时已经达到我们的预期效果。

补充

默认的配置文件名是webpack.config.js,如果你修改了这个名字,比如修改为 config.js,此时打包,你需要这样写:

webpack --config config.js

指定一下文件名,效果一样。

结尾

这就是webpack的简单打包功能,看起来是不是很简单。其实它并不是像本文中介绍的这样简单,很多强大的功能都需要通过配置文件来实现。在这之前,了解上面的知识应该能够入门的。更多的知识,我也会慢慢记录,你也可以参考文档webpack中文文档

时间: 2024-10-12 14:02:50

webpack初体验之模块化开发的相关文章

webpack初体验

本人菜鸟一枚,最近一直在研究webpack的使用,记录下自己的学习体会,由于网上关于webpack的资源(技术博客)太多,对于初学webpack的新手来说,看着五花八门的技术博客,真是头晕眼花(可能是列举的示例太深奥,一时无法理解),入了很多的坑,建议还是从技术文档看起,里面的例子都是相对简单易懂的,链接:http://webpackdoc.com/install.html 至于什么是webpack,网上有很多文章都有详细的解释:http://www.cnblogs.com/vajoy/p/46

Git初体验——git项目开发流程

众所周知,Git是一款版本控制软件,之前总是习惯把每次修改后的代码打包并且标注好时间等信息加以区分,使用git之后就完全不需要这么做了. 1.安装git: 官网下载安装即可,没什么复杂的步骤 2.新建仓库 打开指定目录或者新建文件夹 cd xxxxx  打开指定文件夹 mkdir xxxxx 创建目录 pwd 显示当前所在工作路径的绝对目录 $ mkdir secgit $ cd secgit $ pwd 显示:/Users/sybil/secgit git init $ git init In

Windows 10 UAP(通用程序) 开发初体验(1) 之 开发准备

一.准备: 1.准备一个 10074或更高版本的Win10.可以通过 https://insider.windows.com/ 地址,加入Windows 的会员俱乐部免费获取的. 2.下载Visual Studio 2015 RC版. 可以在 https://www.visualstudio.com/ 这个地址下载到. 3.下载 Windows 10 development tools for Visual Studio 2015 RC. 地址:https://dev.windows.com/z

Microsoft IoT Starter Kit 开发初体验

1. 引子 今年6月底,在上海举办的中国国际物联网大会上,微软中国面向中国物联网社区推出了Microsoft IoT Starter Kit ,并且免费开放1000套的申请.申请地址为:http://aka.ms/iotkits,目前仍然有效.当时一开放申请,我就在线填写了申请表,接下来就是长长的等待.相信很多朋友都是一样,在经过几个月的等待之后,终于拿到了这个开发套件,而有些朋友估计还在等待中.因为官方是一个月处理并邮寄一批,速度不是很快.但是,在经过了一段时间使用以后,我可以说,如果朋友们期

【腾讯Bugly干货分享】基于 Webpack &amp; Vue &amp; Vue-Router 的 SPA 初体验

本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57d13a57132ff21c38110186 导语 最近这几年的前端圈子,由于戏台一般精彩纷呈,从 MVC 到 MVVM,你刚唱罢我登场. backbone,angularjs 已成昨日黄花,reactjs 如日中天,同时另一更轻量的 vue 发展势头更猛,尤其是即将 release 的2.0版本,号称兼具了 angularjs 和 reactjs 的两者优点.不过现在的官方

Xamarin.iOS开发初体验

Xamarin是一个跨平台开发框架,这一框架的特点是支持用C#开发IOS.Android.Windows Phone和Mac应用,这套框架底层是用Mono实现的. Mono是一款基于.NET框架的开源工程,包含C#语言编译器.CLR运行时和一组类库,能运行于Windows.Linux.Unix.Mac OS和Solaris.对于.NET程序员来说,Xamarin是走向安卓.iOS.Mac跨平台开发的神器,不仅能用熟悉的C#来开发,还能使用Visual Studio作为IDE.本文内容是Xamar

人工智能初体验(二):开发简单的图灵智能聊天工具

前言:这里为了有更好的个性化设置,因此我选择了图灵机器人(http://www.tuling123.com/)的接口,使用方法跟上一篇中使用百度的接口是差不多的. 注:文末有打包好的小软件和完整源代码的下载链接 一 API Key申请 申请地址:http://www.tuling123.com/ 中间的注册登录过程不说,最后把API Key值记录下来 二 核心功能开发 这个小项目的目录结构: 核心功能文件TuringRobot.java,代码很简单,一看就明白,代码如下: package act

Microsoft IoT Starter Kit 开发初体验-反馈控制与数据存储

在上一篇文章<Microsoft IoT Starter Kit 开发初体验>中,讲述了微软中国发布的Microsoft IoT Starter Kit所包含的硬件介绍.开发环境搭建.硬件设置.Azure IoT Hub的连接.程序的编译.下载和调试.PowerBI数据的展现.在这篇文章中,将会详细讲述Cloud to Device的消息反馈控制以及如何通过Stream Analytics将数据存储到Azure Storage Table,以方便数据后期的利用. 1. 反馈控制 上一篇文章中,

Xamarin+Prism开发详解四:简单Mac OS 虚拟机安装方法与Visual Studio for Mac 初体验

Mac OS 虚拟机安装方法 最近把自己的电脑升级了一下SSD固态硬盘,总算是有容量安装Mac 虚拟机了!经过心碎的安装探索,尝试了国内外的各种安装方法,最后在youtube上找到了一个好方法. 简单总结一下成功安装方法: 1,Vmware Player 12.1.1-3770994(Virtual Box 老版本Win10上启动不了,新版本5.1不再支持Mac OS) 2,执行命令关闭Hyper-v服务重启:bcdedit /set hypervisorlaunchtype off (不然无法