一、Webpack的用途

webpack要解决的是统一网页资源的问题

前端工程化出现了很多问题,就是兼容性,浏览器所不能解析

所以需要一个打包,转换等方式处理

二、安装描述介绍

下载安装NodeJS,此命令只是查看NodeJS版本

node -v

使用NodeJS提供的NPM包管理工具下载安装Webpack

npm install webpack@3.6.0 -g

写项目时使用局部安装:【注意当前工作目录】

npm install webpack@3.6.0 --save-dev

三、项目结构:

src — 【source】开发编写前端代码文件存放的目录
dist — 【distribution】编写完成将src资源打包之后生产的文件,存放的目录
index.html — 首页引用的样式文件,dist打包之后会加入此文件

在src中创建main.js文件和util.js文件

util表示工具的意思,可利用的

let sum = function (n1, n2) {
return n1 + n2;
}
let multi = function (n1, n2) {
return n1 * n2;
} export default {
sum, multi
}

而main.js则是导入util.js然后调用方法:

import util from "./util";
console.log(util.sum(22, 32));
console.log(util.multi(213, 219));

在终端执行打包命令:

webpack src/main.js dist/bundle.js

终端输出:

Hash: 9b8d8dcf03ad5dca65da
Version: webpack 3.6.0
Time: 152ms
Asset Size Chunks Chunk Names
bundle.js 3.15 kB 0 [emitted] main
[0] ./src/main.js 100 bytes {0} [built]
[1] ./src/util.js 149 bytes {0} [built]

上面使用的是ES6模块化打包,

换成使用CommonJS的方式也是没有问题的:

let sum = function (n1, n2) {
return n1 + n2;
}
let multi = function (n1, n2) {
return n1 * n2;
} module.exports = {
sum, multi
}

CommonJS导入:

const { sum, multi } = require('./util.js');
console.log(sum(22, 32));
console.log(multi(213, 219));

四、webpack.config.js & package.json 文件配置

上述操作中我们使用了webpack 打包命令进行打包的

使用命令并不是很方便,所以webpack提供了配置文件的方式进行处理

webpack.config.js

const path = require('path'); /* 这里依赖一个path,这个path来自于npm的包中的一个模块,必须要有path包才能用 */
/* 所以需要装包 npm init */ module.exports = {
entry : './src/main.js', /* 打包的程序入口 */
output : { /* 打包输出的文件,出口路径 分为路径和文件名 */
// path : './dist', /* 路径可以动态获取 */
path : path.resolve(__dirname, 'dist'),
/* __dirname是一个全局变量 值是当前webpackconfig.js文件所在的绝对路径, cans参数二就是我们自定义的目录名称 */
filename : 'bundle.js', /* bundle 意思打包 就是打包好的JS文件 */
},
}

让npm对项目进行初始化

D:\Vue-Learn\CodeWhy\08-webpack\part1>npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults. See `npm help init` for definitive documentation on these fields
and exactly what they do. Use `npm install <pkg>` afterwards to install a package and
save it as a dependency in the package.json file. Press ^C at any time to quit. 下面出现的选项都按回车Enter下一步即可
package name: (part1)
version: (
1.0.0)
description:
entry point: (webpack.config.js)
test command:
git repository:
keywords:
author:
license: (ISC)

About to write to D:\Vue-Learn\CodeWhy\08-webpack\part1\package.json: {
"name": "part1",
"version": "1.0.0",
"description": "",
"main": "webpack.config.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
} Is this OK? (yes)

之后Npm就会生成一个JSON文件

package.json,内容就是上述命令中的JSON字符

{
"name": "part1",
"version": "1.0.0",
"description": "",
"main": "webpack.config.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}

如果package.json声明了项目的一些依赖,我们还需要安装package.json中描述的依赖

npm install

该命令会寻找package.json中描述的依赖进行下载,写入到本项目中

如果package.json没有依赖的信息,此命令执行也就等同没执行一样

命令映射处理:

/* 运行项目命令 npm run serve 打包(构建)项目命令 npm run build */
/* webpack 打包命令和 npm run build 进行映射 */

所以命令的配置可以在package.js中设置:

{
"name": "part1",
"version": "1.0.0",
"description": "",
"main": "webpack.config.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1" , /* 对应npm run test命令的test */
"build" : "webpack" /* build -> npm run build -> webpack 优先找本地webpack 包 */
},
"author": "",
"license": "ISC"
}

注意当前webpack版本和全局webpack版本

在当前项目安装webpack

npm install webpack@3.6.0 --save-dev

安装完成之后多出的目录和文件:

我们安装的依赖都会存放在node_modules目录中,备注的信息是库目录的根

此外还多出一个package-lock.json

返回package.json就可以看到这个东西:

这个依赖不需要我们自己编写,根据命令安装的依赖自动写入

{
"name": "part1",
"version": "1.0.0",
"description": "",
"main": "webpack.config.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"build": "webpack"
},
"author": "",
"license": "ISC",
"devDependencies": {
"webpack": "^3.6.0"

}

}

只要使用终端写命令webpack对项目打包的都是调用全局weback处理

使用npm run build就是使用本地当前项目的node_modules的webpack进行打包的

文件位置:

node_modules/.bin/webpack

【Vue】Re09 Webpack 第一部分(介绍、安装、配置)的更多相关文章

  1. 浅入深出Vue:工具准备之PostMan安装配置及Mock服务配置

    浅入深出Vue之工具准备(二):PostMan安装配置 由于家中有事,文章没顾得上.在此说声抱歉,这是工具准备的最后一章. 接下来就是开始环境搭建了~尽情期待 工欲善其事必先利其器,让我们先做好准备工 ...

  2. 浅入深出Vue:工具准备之WebStorm安装配置

    浅入深出Vue之工具准备(一):WebStorm安装配置 工欲善其事必先利其器,让我们先做好准备工作吧 导航篇 WebStorm安装配置 所有工具的下载地址都可以在导航篇中找到,这里我们下载的是最新版 ...

  3. 第一章 Maven 安装配置

    Maven基于(POM)项目对象模型,通过一小段描述信息来管理项目的构建.文档.和报告的项目管理软件,类似于php 的管理构建工具composer. 有关详细的Maven学习,可以参考学习https: ...

  4. Nginx介绍,安装,配置

    引言 为什么要学习Nginx 问题一: 客户端到底要将请求发送给哪台服务器? 问题二: 如果所有客户端的请求都发送给了服务器1,那另一台岂不是废了 问题三: 客户端发送的请求可能是申请动态资源的,也可 ...

  5. Vue踩坑第一步,安装Vue最新版本

    学习vue第一步肯定是安装vue-cli,那么肯定想去搜下如何安装vue-cli呢? 网上搜到的结果大都是: npm i vue-cli -g 输入vue -V发现: 输入node -v发现: 自己明 ...

  6. [转载] 纯手打 第一篇:安装配置gradle

    本文转载自: http://www.cnblogs.com/uncle2000/p/4276833.html 一个bug 一个脚印的叫你们用gradle. 1介于网络上的很多资料都是老的 不适用与现在 ...

  7. gradle教程 [原创](eclipse/ADT下 非插件 非Android Studio/AS)纯手打 第一篇:安装配置gradle

    一个bug 一个脚印的叫你们用gradle. 1介于网络上的很多资料都是老的 不适用与现在的新版本gradle 尤其是有些gradle方法改名了老的用不了 2介于网上都是粘贴复制并且零碎我很蛋疼啊,走 ...

  8. vue项目webpack中Npm传递参数配置不同域名接口

    项目开发中,前端在配置后端api域名时很困扰,常常出现:本地开发环境: api-dev.demo.com测试环境: api-test.demo.com线上生产环境: api.demo.com, 这次是 ...

  9. opencv第一课,安装配置

    下载工具:本教程以OpenCV3.2.0为例. 解压:本教程解压到D盘,解压的其它地方也是可以的,解压完后得到一个名为opencv目录. 配置系统变量:选择此电脑(计算机)->右键属性选择-&g ...

  10. IntelliJ IDEA使用教程一 介绍&安装&配置

    http://blog.csdn.net/nextyu/article/details/47206015 全套

随机推荐

  1. 极限科技(INFINI labs)荣获中国信通院大数据“星河”标杆案例

    12 月 6 日,由中国信息通信研究院和中国通信标准化协会大数据技术标准推进委员会(CCSA TC601)共同组织的 2023 大数据"星河(Galaxy)"案例评选结果正式公示. ...

  2. MySQL GROUP BY 用法介绍

    MySQL 中 GROUP BY 用法 简介 GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组. 可以把 分组理解成 Excel 中的分组. 把 合计函数理解成 Excel 中 ...

  3. 支付宝签名和验签使用JSONObject是最优解。json字符串顺序和==符号都一致演示代码

    支付宝签名和验签使用JSONObject是最优解.json字符串顺序和==符号都一致演示代码 支付宝spi接口设计验签和返回结果加签注意点,支付宝使用JSONObject对象https://www.c ...

  4. 安装Ingress-Nginx

    目前,DHorse(https://gitee.com/i512team/dhorse)只支持Ingress-nginx的Ingress实现,下面介绍Ingress-nginx的安装过程. 下载安装文 ...

  5. Spring Boot 整合 Fisco Bcos(部署、调用区块链合约)

    简介 在上一节,介绍了Spring Boot 整合 Fisco BCOS的最最基础的案例(SpringBoot成功连接Fisco BCOS,并访问其节点网络 --> 文章链接). 本节,咱们继续 ...

  6. 【VyOS-开源篇-3】- container for vyos 搭建 Halo 博客-vyos-开源篇

    文章说明:介绍在vyos软路由上配置container容器,vyos最新滚动版1.5已经支持在vyos命令行中启动docker容器,在vyos 官网介绍是说1.3版本之后就都有这个功能了,如果你的版本 ...

  7. MySQL日志(redo log、binlog)刷盘策略

    通过上篇文章,我们知道MySQL是采用两段提交策略来保证事务的原子性的,redo log刷盘的时机是在事务提交的commit阶段采取刷盘的,在此之前,redo log都存在于redo log buff ...

  8. 3562-Qt工程编译说明

  9. spring cloud 上云的情况下,Ribbon 客户端负载均衡 与 ALB 服务端负载均衡的选择

    在云环境(例如AWS)中,由于云提供商通常提供强大的负载均衡服务(如AWS的ALB),一般不再需要使用Ribbon这种客户端负载均衡方案.云环境中的负载均衡器通常能够提供更高的可靠性.可扩展性和简化的 ...

  10. Java中的泛型(类、接口、方法)

    一.泛型概述 1. 什么是泛型? 泛型,即"参数化类型".一提到参数,最熟悉的就是定义方法时有形参列表,普通方法的形参列表中,每个形参的数据类型是确定的,而变量是一个参数.在调用普 ...