从零搭建 webpack3 环境 #1 - 安装使用
目录:
(1)什么是webpack
(2)webpack核心概念
(3)环境安装
(4)开始使用webpack
1、什么是webpack
官网的一幅图对webpack的解释,从图中可以看出,webpack 可以看做是模块打包机:它做的事情是,分析你的项目结构,找到 JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript 等),并将其转换和打包为合适的格式供浏览器使用。

我们看维基百科对webpack的描述。
Webpack 是一个开源的前端打包工具。Webpack 提供了前端开发缺乏的模块化开发方式,将各种静态资源视为模块,并从它生成优化过的代码。Webpack可以从终端、或是更改 webpack.config.js 来设置各项功能。
简单的说,通过webpack,我们可以以模块化的方式开发我们的项目,我们可以把开发中的所有资源(.png、js 文件、css 文件等)都看成模块,对资源进行处理和打包成浏览器可以直接使用的静态资源文件。
2、核心概念
webpack的四个核心概念:
(1)entry(入口)
入口起点,指示webpack应该使用哪个模块,来作为构建其内部依赖图的开始
(2)output(输出)
告诉webpack在哪里输出它所创建的bundles,以及如何命名这些文件
(3)loaders(加载器)
让webpack能够去处理那些非JavaScript文件,loader 可以将所有类型的文件转换为 webpack 能够处理的有效模块,然后你就可以利用 webpack 的打包能力,对它们进行处理。
(4)plugins(插件)
插件可以用于执行范围更广的任务。插件的范围包括,从打包优化和压缩,一直到重新定义环境中的变量。插件接口功能极其强大,可以用来处理各种各样的任务。
3、环境安装
3.1、安装Node.js(已安装跳过)
要使用 Webpack 前须先安装Node.js,下载直接安装即可,
安装完成后可以在命令行中使用 node -v 查看当前node.js 的版本
3.2、安装cnpm(已安装跳过)
因为npm的镜像在国外,在国内下载速度会很慢。我们可以使用淘宝的镜像
输入以下命令
npm install -g cnpm --registry=https://registry.npm.taobao.org
然后通过cnpm -v 查看当前cnpm版本,能成功查看,说明安装成功
3.3、安装webpack
通过cnpm全局安装webpack,输入命令
cnpm install webpack@3.6. webpack-cli -g
安装完成后输入webpack -v 查看webpack版本
webpack -v
4、开始使用webpack
(1)首先新建一个文件夹,作为项目文件夹,如:新建一个 webpack-demo文件夹
(2)打开命令行进入到webpack-demo文件夹中,使用npm初始化项目,一直enter就OK
npm init
初始化完成后,会生成一个package.json文件。
(3)新建一个入口js,如app.js
简单的输出一句hello word

(4)在项目跟目录下新建一个webpack配置文件,webpack.config.js
var path = require('path');
module.exports = {
entry: {
app: './app.js' // 入口js文件
},
output: {
path: path.resolve(__dirname, './dist'), // 打包后文件输出的目录
filename: '[name].js' // 打包后输出的文件名称
}
}
这是一个最简单的webpack配置。
(5)最后在项目文件夹下通过命令行 webpack命令 执行 webpack打包

(6)最后可以在dist文件夹下看到webpack输出的文件。

从零搭建 webpack3 环境 #1 - 安装使用的更多相关文章
- 以Aliyun体验机为例,从零搭建LNMPR环境(上)
使用云服务器搭建 Web 运行环境,尤其是搭建常见的 LNMPR(Linux+Nginx+MySQL+PHP+Redis) 环境,对于开发人员是必备的职场基本技能之一.在这里,借着搭建我的" ...
- 以Aliyun体验机为例,从零搭建LNMPR环境(下)
使用云服务器搭建 Web 运行环境,尤其是搭建常见的 LNMPR(Linux+Nginx+MySQL+PHP+Redis) 环境,对于开发人员是必备的职场基本技能之一.在这里,借着搭建我的" ...
- linux下搭建lamp环境以及安装swoole扩展
linux下搭建lamp环境以及安装swoole扩展 一.CentOS 6.5使用yum快速搭建LAMP环境 准备工作:先更新一下yum源 我安装的环境是:apache2.2.15+mysql5 ...
- 第0课 - 搭建开发环境之安装QT
第0课 - 搭建开发环境之安装Qt 1. 课程学习的原材料 — Visual Studio 2010 — Qt SDK 4.7.4 — Qt Creator 2.4.1 2. Visual Studi ...
- webpack-从零搭建vuecli环境
模块化思想 // 1最早期就只是html和css处理网页 // 2发明一种语言来操作html和css js // 3早期只是在html文件里直接在script标签里写一些脚本代码 // 4随着Ajax ...
- 搭建域环境,安装Exchange Server 2013,复现CVE-2019-1040
搭建域环境 操作系统: 域控:Windows server 2008 R2 域成员: Windows Server 2012 . Windows 7 对于将要安装成为DC的服务器来讲,其系统配置 ...
- windows转mac-开发环境搭建(一):需要搭建的环境及安装的工具
作为一个java后端开发者来说,随着项目的增加,前段时间用windows真是受尽折磨,电脑卡到不行,在我们开发部技术大佬的一再安利之下,狠下心选了个17年13寸带touch bar的MacBook P ...
- 从零搭建生产环境的ghost2.0博客
当前安装过程是在ghost cli 1.9.2上的,由于ghost更新特别快,我安装我个人博客cmlanche.com的时候还是1.9.1,当时没碰到啥问题,到1.9.2就有一点点不一样了,所以要注意 ...
- 从零搭建LNMP环境
Linux就是环境所在的操作系统: Nginx则是一个「高性能的HTTP和反向代理服务器」,官网地址:http://nginx.org/: MySQL则是一个方便地对数据进行增删改查的数据库管理系统, ...
随机推荐
- Netty实现客户端和服务端通信简单例子
Netty是建立在NIO基础之上,Netty在NIO之上又提供了更高层次的抽象. 在Netty里面,Accept连接可以使用单独的线程池去处理,读写操作又是另外的线程池来处理. Accept连接和读写 ...
- java实现单链表的增删功能
JAVA 实现单链表的增删功能 package linked; class LinkedTable{ } public class LinkedTableTest { public static vo ...
- iOS 10.10 10.11 10.12 安装升级CocoPods
CocoPods简介 CocoaPods是一个用Ruby写的,负责管理iOS以及OSX系统下的一个第三方类库管理工具,通过CocoaPods,我们可以集中,统一的管理第三方开源库.当然这些库徐亚Coc ...
- 《PHP 设计模式》翻译完毕
翻译进度请见:https://laravel-china.org/docs/php-design-patterns/2018?mode=sections 设计模式不仅代表着更快开发健壮软件的有用方法, ...
- 基于以太坊开发的类似58同城的DApp开发与应用案例
今天,Origin开发团队很高兴地宣布在以太坊Rinkeby测试网络上推出Origin Protocol Demo DApp ! 在这个DApp中,你可以在不同垂直行业的solidarity econ ...
- bootstrap 模态框(modal)插件使用
今天用户登陆时,在原网页上弹出新登陆窗口,发现使用的是modal插件,记录下该插件的使用方法,手写强化下. 首先,模态框(modal)是覆盖在父窗体上的子窗体,目的是显示来自一个单独的源的内容,可以在 ...
- web服务器学习1---httpd-2.4.29源码手动编译安装
环境准备: 系统:CentOS 7.4 软件:httpd-2.4.29 一 Apache主要特点 apache服务器在功能,性能和安全性等方面表现比较突出,可以较好地满足web服务器地应用需求.主要 ...
- 软件工程网络15团队作业1——团队组队&展示
Deadline: 2018-3-25 10:00PM,以提交至班级博客时间为准. 申请开通团队博客,并将团队博客地址发表在本次随笔的评论中 团队展示 根据5-6人的组队要求,每个队伍创建团队博客并发 ...
- 2017-2018-1 Java演绎法 小组会议及交互汇总
第一周会议 今天我们小组开展了第一次团队例会活动.我们小组将<构建之法>分为了六个部分并由六位成员先分别学习并向组长上传学习收获,这次的活动内容便是 交流前两周小组成员学习阅读<构建 ...
- 201621123040《Java程序设计》第六周学习总结
1.本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图或相关笔记,对面向对象思想进行一个总结 2.书面作业 2.1clone方法 2.1.1在te ...