关于近期使用webpack所引发的思考
近期,(使其也挺长时间了)。使用了一段时间的webpack。
但是在使用期间个人感觉并不想网上说的那样好,个人对webpack的评价并不是很高,甚至有点反感使用webpack。
个人感觉使用webpack实属迫不得已。
为什么使用webpack,答,为了模块化。
为什么要使用webpack来实现模块化,答,JS语言自身对模块化的不友好。
So,I am not happy....
JS产生之初的身份是一种运行于浏览器的脚本语言,功能很专一,运行环境也很专一。
但是随着NodeJs的横空出世,everything is change 。
JS的功能越来越多,速度越来越快,依赖包也越来越多,运行环境也不再专一。
But,JS的一些与生俱来的特性,或者说是弱点也越来越明显,越来越突出,甚至成了阻碍JS进一步发展的绊脚石。
比如没有多线程,比如没有“包”的概念(借用Java的概念)
没有多线程,就没法充分使用硬件设备性能,催生了多种的解决方案,无论Promise,无论 async/await,无论回调,但是无论多少方案,本质还是单线程。
没有包的概念,代码的扩展,大型项目的开发,难上加难。催生了众多的所谓“模块化”解决方案,纷繁缭乱。
回正题。webpack想解决什么问题那?
个人认为还是模块化问题,
webpack本身只是个打包器,但是在打包方面本身并没有多少优势,只是在模块化打包方面效果比较突出。
webpack的出现弥补了JS在模块化方面的一些先天不足。
webpack之荣,JS之耻。
关于近期使用webpack所引发的思考的更多相关文章
- SQLAlchemy并发写入引发的思考
背景 近期公司项目中加了一个积分机制,用户登录签到会获取登录积分,但会出现一种现象就是用户登录时会增加双倍积分,然后生成两个积分记录.此为问题 问题分析 项目采用微服务架构,下图为积分机制流程 ...
- Spring之LoadTimeWeaver——一个需求引发的思考---转
原文地址:http://www.myexception.cn/software-architecture-design/602651.html Spring之LoadTimeWeaver——一个需求引 ...
- 由SecureCRT引发的思考和学习
由SecureCRT引发的思考和学习 http://mp.weixin.qq.com/s?__biz=MzAxOTAzMDEwMA==&mid=2652500597&idx=1& ...
- 解决一道leetcode算法题的曲折过程及引发的思考
写在前面 本题实际解题过程是 从 40秒 --> 24秒 -->1.5秒 --> 715ms --> 320ms --> 48ms --> 36ms --> ...
- 【思考】由安装zabbix至排障php一系列引发的思考
[思考]由安装zabbix至排障php一系列引发的思考 linux的知识点林立众多,很有可能你在排查一个故障的时候就得用到另一门技术的知识: 由于linux本身的应用依赖的库和其它环境环环相扣,但又没 ...
- 由<a href = "#" > 引发的思考
原文:由<a href = "#" > 引发的思考 前阵子在一个移动项目中,通过 <a href = "#" > 的方式 绑定clic ...
- 曲演杂坛--一条DELETE引发的思考
原文:曲演杂坛--一条DELETE引发的思考 场景介绍: 我们有一张表,专门用来生成自增ID供业务使用,表结构如下: CREATE TABLE TB001 ( ID ,) PRIMARY KEY, D ...
- class_copyIvarList方法获取实例变量问题引发的思考
在runtime.h中,你可以通过其中的一个方法来获取实例变量,那就是class_copyIvarList方法,具体的实现如下: - (NSArray *)ivarArray:(Class)cls { ...
- 由一个emoji引发的思考
由一个emoji引发的思考 从毕业以来,基本就一直在做移动端,但是一直就关于移动端的开发,各种适配问题的解决,在日常搬砖中处理了就过了,也没有把东西都沉淀下来,觉得甚是寒颜.现就一个小bug,让我们来 ...
随机推荐
- canvas api 速记
基本骨骼 <canvas id="canvas" width=1000 height=1000 style="border: 1px black dotted&qu ...
- USB:USB通信中的端点(endpoint)和四种传输模式
USB的传输模式有4种,分别是控制传输(Control Transfer).中断传输(Interrupt Transfer).批量传输或叫块传输(Bulk Transfer).实时传输或叫同步传输(I ...
- Qt QSplitter任意拆分窗口
Qt拆分窗口可以使用QSplitter,也可以使用比较容易使用布局控件来完成,本文章给出使用QSplitter分割窗口的例子. QSplitter 继承自QFrame,而QFrame又继承自QWidg ...
- python 上下文管理器contextlib.ContextManager
1 模块简介 在数年前,Python 2.5 加入了一个非常特殊的关键字,就是with.with语句允许开发者创建上下文管理器.什么是上下文管理器?上下文管理器就是允许你可以自动地开始和结束一些事情. ...
- Wise Force Deleter 强制删除文件工具
https://www.xitmi.com/3321.html Wise Force Deleter v1.49 中文绿色版 强制删除文件工具
- [简短问答]C-Lodop中一些测试用的地址
测试访问:访问http://localhost:8000欢迎页面试试进入欢迎页面http://localhost:8000,点欢迎页面的预览试试 查看下c-lodop启动界面,在设置里查看下当前启动的 ...
- [LeetCode] 451. Sort Characters By Frequency 根据字符出现频率排序
Given a string, sort it in decreasing order based on the frequency of characters. Example 1: Input: ...
- Web服务器、应用程序服务器、web应用服务器、反向代理服务器
参考链接:https://www.cnblogs.com/zhaoyl/archive/2012/10/10/2718575.html 首先我们来了解什么是服务器(server) 一般来说,serve ...
- 基于Mac的Appium环境搭建(java)
一.jdk安装 1.下载地址 http://www.oracle.com/technetwork/java/javase/downloads/index.html 2.安装 3.配置环境变量: ope ...
- python基础篇(五)
PYTHON基础篇(五) 算法初识 什么是算法 二分查找算法 ♣一:算法初识 A:什么是算法 根据人们长时间接触以来,发现计算机在计算某些一些简单的数据的时候会表现的比较笨拙,而这些数据的计算会消耗大 ...