好久没水文章了

简介: 好久没水文章了

还记得刚刚开始玩 webpack 的时候就想着 webpack-dev-server 在本地搞开发这么好用,那我能不能给弄到服务器上让它也能一直在后台运行呢,这样即使在开发阶段也能实时看到进展,当然很多人都不建议这样做,但肯定是可以实现的,下面就去实现它吧。



Tmux



终端神器之一,开个后台进程让用户退出服务器也保持运行这种事对 tmux 来说根本就是小菜一碟。


安装:通过 apt-get、yum、homebrew 等工具安装即可。


然后进行以下操作(输入终端命令):

1、

tmux  new  -s  <session_name>

新建一个 session 会话,名字就是你指定的 session_name ,执行这条指令后会弹出一个新的界面覆盖原来的界面。


2、进入工程目录,启动 webpack-dev-server 服务器。

这里我在 package.json 中的 scripts 中添加了一条自定义项以方便操作。

注意红色圈中的部分,如果你使用 docker 等容器或虚拟机等,--host 0.0.0.0 是必不可少的,另外 --public <host>:<port> 为了让所有人都能访问到也是必须的,host 就是蓝色划掉的部分,是你的服务器公网IP地址。


然后 npm run dev 即可启动了,其实跟你在本地操作是一样的,接下来你看到的东西也跟本地操作时一样。


3、保持上面操作的 session 在后台运行,返回之前的终端界面。

先同时按一下 control + B 两个键,随即再按一下 D 键。

我们返回了最开始的终端界面,即使退出服务器 webpack-dev-server 也在创建好的 session 中保持运行。


4、如果我想重新进入创建过的 session 中继续操作呢。

输入 tmux ls ,我们就会看到所有创建过的 session 会话。

tmux  attach  -t  <session_name>

输入这条指令我们就可以重新进入名字为 session_name 的 session 会话界面然后继续操作了。


写到这里,我们的想要实现的事情已经很好的解决了。但是,tmux 的功能远不止于此,如果你使用 Mac 中的 iTerm2,那么想必 tmux 你也会很乐于使用,各种操作 window 窗口,将一个窗口随意的横竖划分成不同的面板,配合上快捷键简直不要太好用。



webpack



既然说了 webpack 的内容,再接着写点东西好了。


一、分析工具


想要缩小打包体积,优化响应速度,有效的 bundle 分析工具肯定是必不可少的,下面介绍三种:


1、analyse:可以很清晰的看出依赖库的情况,便于逐个检查。



2、webpack-chart:优美的图形展示,可以一层层点进去查看。



上面两个工具不需要安装依赖包,只需要将记录打包数据的 stats.json 文件上传到各自的官网即可。


3、webpack-bundle-analyzer:需要在项目中安装依赖包,并在 webpack.config.js 中添加它的 plugin 插件,生成的图形是网格形状,也很好用。



二、简单优化


对于 antd ,使用官方推荐的方式按需引入。


对于 moment ,同样使用官方推荐的 IgnorePlugin 即可。


通过 DefinePlugin 定义生成环境。


必不可少的 UglifyJsPlugin 压缩文件,这货效果杠杠的。


分离 css 样式文件,浏览器对 js 和 css 的处理是不同的,分离对缩小加载时间有很大的帮助。


使用 ModuleConcatenationPlugin 提升下作用域,webpack 打包本身会产生很多闭包的情况,这会降低 JS 引擎的执行效率,不过这个插件老实说效果并不明显。


贴个图吧:


其实关于优化,这只是基本的,还有可以改进的余地,另外对于 echarts 的处理,通过 externals 然后 CDN 引入的方式其实并没有什么卵用,从另一个角度来看,一方面是操作虚拟DOM,另一方面是操作真实DOM,或许两者本身存在难以逾越的鸿沟。



就这样吧,本篇完结撒花。

目录
相关文章
|
负载均衡 Shell Docker
Docker-Compose概述
Docker-Compose概述
|
安全 Linux 测试技术
如何使用Kali Linux进行渗透测试?
如何使用Kali Linux进行渗透测试?
773 0
|
缓存 NoSQL 关系型数据库
Redis和Mysql如何保证数据⼀致?
在项目中,为了解决Redis与Mysql的数据一致性问题,我们采用了多种策略:对于低一致性要求的数据,不做特别处理;时效性数据通过设置缓存过期时间来减少不一致风险;高一致性但时效性要求不高的数据,利用MQ异步同步确保最终一致性;而对一致性和时效性都有高要求的数据,则采用分布式事务(如Seata TCC模式)来保障。
219 14
|
程序员
中国程序员面临的挑战:行业现状与个人发展
在中国,程序员作为技术行业的中坚力量,他们面临的挑战和困境值得关注。这些挑战不仅影响着程序员的个人发展,也关系到整个技术行业的进步。本文将探讨中国程序员面临的一些主要问题,并分析这些问题背后的原因,同时探讨可能的解决方案。
321 2
|
10月前
|
SQL 监控 Serverless
Hologres Serverless Computing 快速入门
本文自阿里云智能- Hologres 团队恒定的分享,主题是 Hologres Serverless Computing 快速入门,主要包括以下内容: 1. Hologres Serverless Computing 架构介绍 2. Hologres Serverless Computing 使用入门
286 15
|
存储 人工智能 供应链
区块链技术在供应链管理中的革新应用
区块链技术在供应链管理中的革新应用
651 17
|
机器学习/深度学习 人工智能 自然语言处理
详解人工智能(概念、发展、机遇与挑战)
详解人工智能(概念、发展、机遇与挑战)
|
存储 运维 监控
云计算运维和传统运维工程师有何区别
云计算运维和传统运维工程师有何区别
652 1
|
测试技术
软件复杂度量化:McCabe度量法及其环路复杂度的计算方法
McCabe度量法(McCabe&#39;s Cyclomatic Complexity)是一种经典的方法,用于度量软件程序的复杂度。通过计算程序中独立路径的数量,帮助开发人员评估代码的维护难度和测试覆盖率。本文详细介绍了McCabe度量法的原理、计算方法及其在实际应用中的作用。
2497 0
|
Linux 网络安全
三步实现Linux下主机之间SSH免密登录
三步实现Linux下主机之间SSH免密登录
333 0