webpack基本配置

前言

学习到了webpack的配置,截止到目前,还是挺复杂的,版本问题经常出bug。留个笔记记录一下吧~

认识webpack

什么是webpack?

官方的解释:

At its core,webpack is a static module bundlerfor modern JavaScript applications

从本质上讲,webpack是一个现代的JavaScript应用的静态模块打包工具。

总结两点就是:模块or打包

和gulp对比

gulp更加强调的是前端流程的自动化,模块化不是它的核心。如果工程模块依赖非常简单,甚至没用到模块化的概念,只需要进行简单的合并、压缩,就可以使用grunt/gulp,如果整个项目使用了模块化管理。而且依赖性非常强,我们就可以使用更加强大的webpack。

webpack更加强调模块化开发管理,而文件压缩合并、预处理等功能,是它附带的功能

webpack的安装

前提

webpack为了可以正常运行,必须依赖node环境

全局安装webpack

指定版本号3.6.0,因为vue cli2依赖该版本,vue cli3隐藏了webpack配置

npm install webpack@3.6.0 -g

局部安装webpack

npm install webpack@3.6.0 --save-dev

webpack的起步

在mathUtils.js中写入以下:module.exports导出函数(add同add:add,es6中语法糖可简写)

function add(num1, num2) {
  return num1 + num2
}

function mul(num1, num2) {
  return num1 * num2
}

module.exports = {
  add,
  mul
}

在main.js中写入以下: require接收导出的函数

const {add, mul} = require('./mathUtils')

console.log(add(20,30));
console.log(mul(20,30));

index.html终端中,进入到当前项目目录

在这里插入图片描述

接下来终端中输入webpack ./src/main.js ./dist/bundle.js(该作用把main.js打包到dist目录下的bundle.js,webpack会自动打包依赖文件)

(文件夹名称写成了srcs,已改回src)

在这里插入图片描述

此时dist目录下,则多了一个打包好的js文件

在这里插入图片描述

index.html中引入该js文件,既可以顺利运行

在这里插入图片描述

webpack的配置

终端输入webpack直接打包

名称必须webpack.config.js,配置成功后终端直接输入webpack即可,不需要输入webpack ./src/main.js ./dist/bundle.js

在这里插入图片描述

通过npm run build进行打包

package.json中配置。该配置优先使用当前项目的webpack命令。局部安装时会使用局部安装的webpack,不会使用全局

在这里插入图片描述

loader的使用

webpack中文文档地址

webpackjs.com

CSS文件处理

终端中输入:npm install --save-dev style-loader 以及 npm install --save-dev css-loader(具体参看官方文档)

webpack.config.js配置如下

在这里插入图片描述

less文件处理

终端中输入:npm install --save-dev less-loader less(vscode可自动less转换为css)

webpack.config.js配置如下

在这里插入图片描述

图片文件处理

终端中输入:npm install --save-dev url-loader

文件过大: npm install --save-dev file-loader

若是无报错,图片不显示,则是版本的问题,这个知识点有点多,详情看注释

在这里插入图片描述

es6转es5

我们只是简单的es6转换为es5,所以不需要根据官方的下载

终端输入:npm install --save-dev babel-loader@7 babel-core babel-preset-es2015

在这里插入图片描述

webpack中配置Vue

安装vue

终端中输入:npm install vue --save

后续实际项目中也会使用vue,所以不是开发时依赖,不用加-dev

引入vue

import Vue from ‘vue’

配置vue

runtime-only -> 代码中,不可以有任何的template(默认使用)

runtime-compiler -> 代码中,可以有template,因为有compiler可以用于编译template

解决方法:webpack.config.js中配置(和module同级)

在这里插入图片描述

Vue终极使用方案

终端中输入:npm install vue-loader vue-template-compiler --save-dev(14以上版本需要插件plugin)
在这里插入图片描述

plugin的使用

版权

webpack.config.js中,引入webpack(const webpack = require(‘webpack’))

plugins和module平级

此时bundle.js首行中,就加入横幅
在这里插入图片描述

打包Html

终端中输入: npm install html-webpack-plugin --save-dev

引入html-webpack-plugin包,index.html文件中不需要引入js文件,publicPath拼接的路径记得清除

在这里插入图片描述

js压缩

终端中输入:npm install uglifyjs-webpack-plugin@1.1.1 --save-dev(此版本配套cli2) 接下来引入包

此时版权的注释信息会被清除,与注释不配套使用

在这里插入图片描述

搭建本地服务器

终端输入: npm install --save-dev webpack-dev-server@2.9.1

此时不能使用npm run build运行,package.json中配置

在这里插入图片描述

webpack-dev-server --open(运行后不需要手动点击)

配置文件分离

终端输入:npm install webpack-merge --save-dev

pack-dev-server@2.9.1

此时不能使用npm run build运行,package.json中配置

[外链图片转存中…(img-BYKaHmJB-1615530859844)]

webpack-dev-server --open(运行后不需要手动点击)

配置文件分离

终端输入:npm install webpack-merge --save-dev

新建一个build文件夹,新建三个js文件(base.config.js 共同配置 prod.config.js 发布配置 dev.config.js 运行配置)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值