好家伙,到了打包发布这一步了

1.配置打包命令:

在package.json 文件的 scripts 节点下,新增 build 命令如下:

"scripts": {

"dev": "webpack serve", // 开发环境中,运行 dev 命令

"build": "webpack --mode production" //项目发布时,运行 build 命令

}

(出现了!!,npm run build)

--model是一个参数项,用来指定webpack的运行模式。production 代表生产环境,

进行代码压缩和性能优化。(开发版本打包快,发布版本包小)

注意:通过--model指定的参数项(其优先级更高),会覆盖webpack.config.js 中的 model 选项。

2.优化图片和js文件的存放路径

在webpack.config.js文件中进行添加配置

output:{

//存放的目录

    path: path.join(__dirname, 'dist'),

//生成的文件名

    filename: 'js/bundle.js'
},

把JavaScript文件统一生成到js目录中
在webpack.config.js 配置文件的 output节点中,进行如下的配置:

output:{

    path:path.join(_dirname, 'dist'),

    // 明确告诉 webpack 把生成的 bundle.js 文件存放到 dist 目录下的 js 子目录中
filename: 'js/bundle.js'. }

现在打包后的文件目录更加规范了,js文件在一个文件夹,图片在一个文件夹,

但重复的打包,会让dist文件夹中的文件变得非常乱,所以我们又需要一个插件来帮我们每次在打包前清除一下dist文件夹中的文件

(所以说又是插件的插件)

3.安装并配置 clean-webpack-plugin插件

为了在每次打包发布时自动清理掉dist目录中的旧文件,可以安装并配置 clean-webpack-plugin插件

// 1.安装清理 dist 目录的 webpack 插件
npm install clean-webpack-plugin@3.0.0-D // 2.按需导入插件、得到插件的构造函数之后,创建插件的实例对象
const { CleanWebpackPlugin } = require('clean-webpack-plugin')
const cleanPlugin =new CleanwWebpackPlugin() // 3.把创建的 cleanPlugin 插件实例对象,挂载到 plugins 节点中
plugins: [htmlPlugin, cleanPlugin], // 挂载插件

关于配置,看他的名字叫做“ clean-webpack-plugin”那么他一定是webpack的插件,

去到npm的官网上可以看到,其具体的安装方法和配置方法

如下:

网站地址:clean-webpack-plugin - npm (npmjs.com)  //百度直接搜索npm

关于安装:

npm install --save-dev clean-webpack-plugin

去到webpack.config.js文件进行配置:

const { CleanWebpackPlugin } = require('clean-webpack-plugin');
//大写字母开头,构造方法
const webpackConfig = {
plugins: [ new CleanWebpackPlugin(),
],
};

至此,整个打包流程基本走完

That's all

第五十七篇:webpack打包发布的更多相关文章

  1. webpack打包发布项目

    1.打包 :npm run build 2.发布: 1)使用静态服务器工具包 npm install -g serve serve dist 访问:http://www.localhost.5000 ...

  2. 第二篇 HTML5打包发布IOS APP之苹果开发者账号申请流程

    打包技术转移到了公众号

  3. 第五十七篇、AVAssetReader和AVAssetWrite 对视频进行编码

    AV Foundation提供了直接处理媒体样本的低级功能,其中需要使用的两个重要的类,AVAssetReader和AVAssetWrite,AVAssetReader用于从AVAsset资源读取媒体 ...

  4. WCF技术剖析之二十七: 如何将一个服务发布成WSDL[编程篇]

    原文:WCF技术剖析之二十七: 如何将一个服务发布成WSDL[编程篇] 对于WCF服务端元数据架构体系来说,通过MetadataExporter将服务的终结点导出成MetadataSet(参考< ...

  5. Webpack 打包优化之速度篇

    在前文 Webpack 打包优化之体积篇中,对如何减小 Webpack 打包体积,做了些探讨:当然,那些法子对于打包速度的提升,也是大有裨益.然而,打包速度之于开发体验和及时构建,相当重要:所以有必要 ...

  6. Webpack 打包优化之体积篇

    谈及如今欣欣向荣的前端圈,不仅有各类框架百花齐放,如Vue, React, Angular等等,就打包工具而言,发展也是如火如荼,百家争鸣:从早期的王者Browserify, Grunt,到后来赢得宝 ...

  7. [转] Webpack 打包优化之体积篇

    谈及如今欣欣向荣的前端圈,不仅有各类框架百花齐放,如Vue, React, Angular等等,就打包工具而言,发展也是如火如荼,百家争鸣:从早期的王者Browserify, Grunt,到后来赢得宝 ...

  8. 第五十篇: webpack中的loader(一) --css-loader

    好家伙, 1.webpack配置中devServer节点的常用配置项 devServer:{ //首次打包完成后,自动打开浏览器 open:ture, //在http协议中,如果端口号是80,则可以被 ...

  9. Webpack打包构建太慢了?试试几个方法

    Webpack是个很流行的打包工具,但其打包速度却一直被吐槽着 如果不用上一些打包的优化建议,单单打包两三个文件就能花上好几秒,放上几十个入口文件依赖几百上千个包的话,几分钟十几分钟妥妥的 本文整理了 ...

随机推荐

  1. 30.Mysql主从复制、读写分离

    Mysql主从复制.读写分离 目录 Mysql主从复制.读写分离 读写分离 读写分离概述 为什么要读写分离 什么时候要读写分离 主从复制与读写分离 mysql支持的复制类型 主从复制的工作过程 初始环 ...

  2. vue大型电商项目尚品汇(后台篇)day05

    今天继续是对后台管理部分的一个操作,但是快要结束了,今天结束,明天会进入一个从Vue以来,另外一个名声显著的东西了,一只耳闻从未见识,而且十分的炫酷 他就是------数据可视化Echarts,迫不及 ...

  3. 图片放在div中低下会出现一条缝

    页面要达到的样子 中间写的是时候是向div里面放一张图片就行了 <head> <link rel="stylesheet" href="reset.cs ...

  4. c# 把网络图片http://....png 打包成zip文件

    思路: 1.把网络图片下载到服务器本地. 2.读取服务器图片的文件流 3.使用zip帮助类,把图片文件流写进zip文件流. 4.如果是文件服务器,把zip文件流 推送文件服务器,生成zip的下载url ...

  5. RASP | 远程Java应用的RASP调试教程

    远程Java应用的RASP调试教程 介绍 Java RASP是基于Java Agent技术实现的,而Java Agent代码无法独立启动,必须依赖于一个Java运行时程序才能运行. 如何调试一个Jav ...

  6. 正睿七连测 DAY5 T2

    题是水题,也不难想,本来是想打暴力先过个小数据, 本来就想再搞搞优化试试能不能过,毕竟这个题理论上 O( $n^2$ ) 是能过的 题干 主要是觉得这个优化很有可取之处,本来超时,一加这个优化就好很多 ...

  7. JavaWEB-03-JDBC

    内容 JDBC `JDBC`简介 JDBC `JDBC`快速入门 JDBC API `JDBC API` 详解 数据库连接池 JDBC `JDBC`案例 1. JDBC入门 1.1 概述 概念 JDB ...

  8. 绿色安装MySQL5.7版本----配置my.ini文件注意事项

    前言 由于前段时间电脑重装,虽然很多软件不在C盘,但是由于很多注册表以及关联文件被删除,很多软件还需要重新配置甚至卸载重装. 使用MySQL时就遇到了这种情况,在修改配置文件无效的情况下选择了重新安装 ...

  9. 管正雄:基于预训练模型、智能运维的QA生成算法落地

    分享嘉宾:管正雄 阿里云 高级算法工程师 出品平台:DataFunTalk 导读:面对海量的用户问题,有限的支持人员该如何高效服务好用户?智能QA生成模型给业务带来的提效以及如何高效地构建算法服务,为 ...

  10. SQL语句编写

    mybatis插入数据 下面的item.avatarUrl取出的是java实体类里面的属性,所有需要大写 插入的SQL: INSERT INTO `one` VALUES(1,"第一个&qu ...