一、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. react做购物车的功能

    父组件 import React, { Component } from 'react' import Lists from '../components/Lists' export default ...

  2. jquery jquery的选择器

      什么是 jQuery 前端的一个方法库/函数库                 将很多过功能,封装好,我们可以直接使用             官网  https://jquery.com/    ...

  3. INFINI Easysearch 与兆芯完成产品兼容互认证

    近日,极限科技旗下软件产品 INFINI Easysearch 搜索引擎软件 V1.0 与兆芯完成兼容性测试,功能与稳定性良好,并获得兆芯产品兼容互认证书. 此次兼容适配基于银河麒麟高级服务器操作系统 ...

  4. SQL 如何去掉字段中千位的逗号(比如set @= '1,320.00' 想得到@= '1320.00' )

    1/去掉字段里的逗号.(比如set @= '1,320.00' 想得到@= '1320.00' )UPDATE table SET fieldA = REPLACE(fieldA, ',', '') ...

  5. 安装并使用 openssl 生成证书

    1. 安装 openssl参考链接: OpenSSL加密算法库使用系列教程_openssl算法哭调用-CSDN博客 安装包下载地址: 安装包下载地址(正常情况需要将 openssl 源码下载后, 自己 ...

  6. Libgdx游戏开发(3)——通过柏林噪音算法地图随机地形

    原文: Libgdx游戏开发(3)--通过柏林噪音算法地图随机地形-Stars-One的杂货小窝 在B站刷到了随机地图生成的视频,随手学习下并做下记录 注: 本篇使用javafx应用作演示,算是了解这 ...

  7. JSONPATH-阿里和jayway的实现测试

    业务业务的需要,所以想找一个从对象中获取属性的工具. 搜了搜发现由阿里和jayway的实现,又花费了一些时间了解和练习,总结了一些要点: 阿里的可能快一些,但考虑到完备性,也许选择jayway更好一些 ...

  8. 一个基于SSM的CRUD的标准写法

    CRUD即CREATE,READ,UPDATE,DELETE的首字母的合写,意思是增读改删.前人为了便于发音和理解,改为增删改查. CRUD基本上是软件开发中中相当部分功能的最小功能模块构成,虽然软件 ...

  9. java并发的发布和订阅测试

    现在编码的时候,为了处理消息,大家动不动就上个重器,例如MQ之类的.但很多时候,并不是那么有必要,因为数据量和并发其实远远不够. 可以替代的方案非常多,其中一个是java.util.concurren ...

  10. 记录EF 排序配上自定义的比较器

    记录EF 排序配上自定义的比较器 前言 要求页面文件显示的时候能够按照序号去排序要求如下: 数据库有一个列存放文件名,如: 1.1文件 1.2文件 1.1.1文件 1.1.11文件1.0.txt 1. ...