惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

K
Kaspersky official blog
V
Visual Studio Blog
The Register - Security
The Register - Security
A
About on SuperTechFans
W
WeLiveSecurity
Attack and Defense Labs
Attack and Defense Labs
www.infosecurity-magazine.com
www.infosecurity-magazine.com
S
Security @ Cisco Blogs
Google Online Security Blog
Google Online Security Blog
U
Unit 42
Spread Privacy
Spread Privacy
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
S
Securelist
T
Tenable Blog
Help Net Security
Help Net Security
Recorded Future
Recorded Future
S
Secure Thoughts
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The GitHub Blog
The GitHub Blog
G
GRAHAM CLULEY
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
MyScale Blog
MyScale Blog
The Hacker News
The Hacker News
H
Heimdal Security Blog
Microsoft Security Blog
Microsoft Security Blog
博客园 - 三生石上(FineUI控件)
Project Zero
Project Zero
T
Threat Research - Cisco Blogs
J
Java Code Geeks
T
Threatpost
Cyberwarzone
Cyberwarzone
Hacker News - Newest:
Hacker News - Newest: "LLM"
腾讯CDC
阮一峰的网络日志
阮一峰的网络日志
博客园_首页
WordPress大学
WordPress大学
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
M
MIT News - Artificial intelligence
人人都是产品经理
人人都是产品经理
S
Security Affairs
Security Latest
Security Latest
Martin Fowler
Martin Fowler
C
Cyber Attacks, Cyber Crime and Cyber Security
T
The Exploit Database - CXSecurity.com
Cisco Talos Blog
Cisco Talos Blog
L
LINUX DO - 热门话题
宝玉的分享
宝玉的分享
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - Franky
C
CERT Recently Published Vulnerability Notes

JavaScript

发现国内很多文章对宏任务和微任务的解释都是有问题的 - V2EX 智能香氛机小程序外包合作招募 - V2EX 分享一道 Node.js 的面试题,考察 JS 相关的最基本的掌握程度,代码完全来自官方文档 你们 js 用过双等号吗 - V2EX 有人大量建立技术文档的.cn 中文站点,并将站内 js 链接指向 cdn.jsdelivr.net.cn - V2EX 发现了两个关于 JavaScript 语言好玩的网站,让人血压升高 js 判空值 最佳实践 - V2EX 简单的图像算法为什么 AI 搞不定呢 Capacitor.JS 如何自动化最后一步流程 JSON.parse 转数字精度丢失问题 有没有前端大佬,帮我看一下这个网站底部的粒子动画怎么做的。 - V2EX 这段前端代码存在并发读取竞态的问题吗? nstr - number → string, but looks good 前端 js 播放 base64 编码的 mp3,放出来杂音很大,请教是哪里出错了? 熟悉工业计算的来,是阀门相关的企业 js 不使用 promise 完成一个 sleep 函数,必须支持 await 调用 - V2EX 小米手机澎湃系统 AutoJS 的悬浮窗在证券软件打开时就消失 - V2EX 关于 js 复制粘贴问题 求助,无法在 wixsite.com 上使用 document.write threejs 官方文档看着好难受。 - V2EX 有没有 AI 能一步一步教会伸手党如何使用业务系统? 也聊下自己最近用 copilot 写程序的心得,还要讨教下方案 javascript 继续 套壳 AI 应用类 manus 如何在移动端 h5 页面实现<Select/>搜索下拉选择框! - V2EX 求前端高频数据绘图库 - V2EX 吐槽一下 Trae 记忆中好像在论坛看到有款专门在 iframe 中做前端的 js 库/框架? - V2EX JavaScript 中的 Promise 跟异步有关系吗?还是我的理解有问题?谁能把 Promise 解释清楚? Promise 的正确用法应该是什么样的? - V2EX 求问,小程序的菜单栏怎么和右边的功能键垂直居中? - V2EX 自习室小程序的座位图是如何实现的(前端) - V2EX 谷歌浏览器的 bug - V2EX 为什么中小公司的前端面试官爱问 array 和 object 有多少种方法 - V2EX 有什么办法能实现 uniapp 上的离线人脸识别 本人遇到了非常奇怪的关于“注释”ctrl+/ 快捷键问题,需要大佬们指点一二。 ChatGPT 语音对话技术 求前端大佬解惑, HTML 里的文本怎么做逐行滚动? 快应用问题求助 2024 JS 生态调查结果出炉: React 遥遥领先, Vue 程序员最穷 不顾“万人联名请愿”,甲骨文拒绝放弃 JavaScript 商标所有权 有使用 javascript 编写 windows cmd 批处理程序的方法吗,类似 coffescript 这样转译的东西 js 小白,请教一下为什么网页上的播放器, Chrome 控制台不能用 querySelector 直接获取到呢 自荐一个 js 通信的包 Python 代码转换为 Javascript 运算结果不一致 css 的 justify-content 等效语法? 请教一下使用油猴脚本修改 html 内容后, 样式不生效的问题 async 函数中止/task local 方案后记,V8 上的另一个可行思路 如何在前端统计用户观看视频所消耗的流量?求教啊,大神们! pdfjs 中,通过 findController 可以搜索到对应的文本信息,并且高亮出来。那么, pdfjs 有没有什么 api 可以获取搜索到的信息的位置节点 ?请教 有没有独立的同时可以 pc 移动端用的三级联动城市选择组件啊 - V2EX 字幕滚动有没有更好的方式实现
2025 年,我又把前端"老古董"--AMD 给翻了出来
pursuer · 2025-01-13 · via JavaScript

太长不看省流版:

一个具有较高可扩展性的 JS AMD 规范模块加载器 partic2-iamdee
Github
Gitee

在上面的基础上做了个早期形态的“全栈”包管理 pxseed ,并附带一个 Javascript Notebook 。
Github
Gitee

纯网页模式 Javascript Notebook 演示地址
Github Pages
之前 V 站大佬推广的平台 帽子云


关于做这个的动机和最终想实现的效果

在知道 Typescript 之前不习惯写 JS 的,然后接触到 Typescript 的时候第一个问题就是模块化的问题,当时比较多的模块化方案就是 CommonJS 和 AMD 了,为了在浏览器上用自然用的是 AMD 。虽然有 webpack 了但是 AMD 更简单,然后一直用到了现在。

到了现在已经出现了很多前端构建工具,但遗憾的是,Javascript 还是没有一个扩展性较强的统一的模块机制。
例如 Node ,早期用的 CommonJS ,现在开始转变为 ES Module ,浏览器都支持了 ES Module ,但是各种打包工具又会在打包后使用不同的加载方式。而且还有个特例-ServiceWorker 中不支持 ES Module 中的动态 import 。
同时,可能是照顾到打包工具等实现,ES Module 的可扩展性非常弱,可能只有 Import maps 改变映射这种级别的扩展。例如我想从内存/IndexedDB 中加载模块,ES Module 就不能支持。

同时我也接触了 Jupyter Notebook/Lab ,觉得是个很方便的平台,可以动态的执行 Python 并查看每一步的结果。于是也想在 JS 上实现个类似的东西,虽然有 IJavascript ,但是我想有能不依赖后台 python 的这么一个东西。

然后就有了做包管理的想法。

NPM 分发和获取的经常是编译产物。可以对比下 Golang 。Golang 虽然槽点不少,但包管理工具链还是比较优秀的。分发的是源码,对某个函数有疑问,可以在 IDE 中跟进源码,NPM 上则大多只能跟到类型声明。

Node/NPM 的设计对比 python/PIP 有一些地方对 Notebook 不太友好,PIP 默认装全局,NPM 默认装项目文件夹,当然 NPM 的设计一定程度解决了版本问题,不过我的观点是版本问题还是需要第三方库本身做好,包管理来处理兼容问题多少会有一些难以解决的 corner case 。

因此我尝试做了这个 pxseed“全栈”包管理,在这个框架下,前端浏览器和后端 Node 都可以用一套编译产物,并用 AMD 加载模块,Typescript 源码直接分发和下载,这样 IDE 里点一下可以跟进到源码。为了兼容 NPM 生态,pxseed 也添加了 Rollup 来打包 NPM 模块为 AMD 供前端使用。

当然 AMD 做前端是有致命缺点的,AMD 加载零碎文件的性能差,没有 Tree-Shaking ,没有 SEO 。但如果是想做成个类似 python 的属于 JS 的全栈包管理本地用,还是挺不错的。而且 partic2-iamdee 高度可定制化,也让优化上述问题成为可能,比如,你也可以用 Websocket 来加载 JS 模块。

当然这些东西都有点"路子野",说不定已经早有人做过更好更成熟的实现方案,如果有的话欢迎推荐给我。