从零搭建 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则是一个方便地对数据进行增删改查的数据库管理系统, ...
随机推荐
- 纯代码实现WordPress评论回复自动添加@评论者的功能
先看看效果: 这个有什么用呢?添加了@功能之后那些用户评论之间的层次关系就很清晰了,我们可以清楚地知道这些评论是谁发给谁的. 其实主要是为了提升逼格. 实现方法: 将下面代码加入function.ph ...
- Spring源码学习:第2步--使用SLF4j+Log4j日志框架替换掉其自身的commons-logging日志框架
正如Spring官方文档所述,其底层的实现选择了commons-logging作为日志框架.这一"失足"性的选择,竟连Spring自身都抱怨.但是,谁叫Spring如此优秀呢,即使 ...
- python列表操作符
list1=[123,456] list2=[234,234] list1>list2 >>>False#返回False 第一项比较之后直接返回false,第二项不看 #+实现 ...
- mysql limit 接收变量
参考文章:https://blog.csdn.net/ljz2009y/article/details/7887743 PREPARE s1 FROM 'SELECT * FROM t LIMIT ? ...
- Android 使用shape定义不同控件的的颜色、背景色、边框色
Android 使用shape定义不同控件的的颜色.背景色.边框色 设置按钮的右边框和底边框颜色为红色,边框大小为3dp: 在drawable新建一个 buttonstyle.xml的文件,内容如下: ...
- linux --> VIM的列编辑操作
VIM的列编辑操作 一.删除列 1.光标定位到要操作的地方. 2.CTRL+v 进入“可视 块”模式,选取这一列操作多少行. 3.d 删除. 二.插入列 插入操作的话知识稍有区别.例如在每一行 ...
- STL --> string类字符串
基本使用方法 一.输入 string s: cin >> s; getline(cin, s) ; //使用默认的'\n'作为终止符 getline(cin, s, '!') ; //以' ...
- [poj3461]Oulipo_KMP
Oulipo poj-3461 题目大意:给你两个字符串s和p,问s中有多少个等于p的子串. 注释:$1\le strlen(p)\le 10^4\qquad1\le strlen(s)\le 10^ ...
- Python3 的描述符--完整例子详细解释
##描述符类的例子,这个例子说明了描述符和被描述符之间的关系 ##摄氏温度 class Celsius(): ## 1 描述符类 def __init__(self,value = 26.0): ## ...
- 多线程使用Lock实现生产者实现者代码
package cn.com.servyou.qysdsjx.thread; import java.util.ArrayList; import java.util.List; import jav ...