大家好,我卡颂。如果要从JS中找一个API作为整个前端的缩影,ESM规范中的import再合适不过了。本文我们从这个API出发,来聊聊web的发展。web的本质是开放在所有JS运行时中,web是最开放的(紧随其后的可能是deno)。这一点可以从import语法的「模块说明符」窥探一丝端倪。复制
在TypeScript里声明模块,最早是用namespace和module的语法,后来支持了esmodule,类型和变量会用import来导入、用export导出。比如你写了一个库,导出的变量叫Guang,它下面有name和age两个属性,所以你是这样声明类型的:复制exportdefaultGua
大家好,我卡颂。在最近发布的Nodev18.6.0中,带来了一个试验特性ESMLoaderHooksAPI[1]。如果他最终落地,很可能会成为改变前端工程化未来的特性。本文我们来聊聊他。本文参考:CustomESMloaders:Who,what,when,where,why,how[2]。特性简介
大家好,我卡颂。已经有越来越多前端开发者放弃webpack,改用vite作为项目打包工具。其中最主要的原因是—— vite在开发环境基于ESM规范实现的Nobundle模式,节省了「代码打包」的时间(当然,也有ESBuild的功劳)。而在生产环境,当前仍有打包的需求。随着浏览器的迭代,ES
背景众所周知,早期JavaScript原生并不支持模块化,直到2015年,TC39发布ES6,其中有一个规范就是ESmodules(为了方便表述,后面统一简称ESM)。但是在ES6规范提出前,就已经存在了一些模块化方案,比如CommonJS(inNode.js)、AMD。ESM与这些规范的共同点就是