使用 Babel Webpack 打造库

Photo by Lê Tân on Unsplash

本人工作后一直采用自顶向下的方法自学编程知识。初期的学习曲线就是直接上手框架加第三方类库,加之这些工具都比较成熟,自带转译(Babel)和打包工具(Webpack),故这两类工具的使用较少。今天在编写自己的类库后发现,使用这两种工具还是有很多问题,故记录分享如下。

工具链逻辑

转译(transpile)。Babel 转译工具的作用是将可在最新的 JavaScript 语法转化为可被旧浏览器运行的兼容代码。转译工具不会处理模块之间的依赖关系。Babel 默认会把 import export 等转译为 require 和 module.exports。

打包。在撰写本文的 2020 年,浏览器对 JavaScript 模块化的支持还是很糟糕,因此需要单独的打包工具来将各个模块聚合在一个文件中。而聚合的线索就是转译工具生成的 require 或者 import 语法。

继续阅读使用 Babel Webpack 打造库

黑苹果 Hackintosh 入门——黑话篇

在折腾了两台黑苹果,一台淘宝付费,一台自己安装,折腾了半个月,黑苹果有点小心得。初入黑苹果,新人遇到的障碍往往是黑话。这里我总结了一些方便查阅。

Clover

MAC OS 在引导的时候会读取主板的固件信息来进入系统。对于 MAC 电脑来说,它们本身的固件信息支持,启动 MAC OS 当然没有问题,而对于普通 PC 来说,我们需要 Clover 来帮助我们动态修改载入到内存的固件信息,加载一些其他驱动,从而欺骗 MAC OS。

OpenCore(OC)

OpenCore。新一代的引导程序。有望替代 CLOVER。个人感觉 OpenCore 的文档更加详细,更利于新手上路。不过目前版本迭代比较快还不稳定,可以继续观望。

S/L/E

指代苹果系统 System/Library/Extentions 目录。里面存放了系统的内核驱动。想要修改此目录,需要关闭苹果 SIP(System Integrity Protection)系统完整性保护的机制。

KEXT

Kenerl Extentions. 特指内核驱动补丁程序,用来驱动显卡、声卡等。可以放在 Clover UEFI 引导文件夹下,也可以通过 Kext Utility 进行安装,否则需要手动重建缓存。

DSDT

Differentiated System Description Tabl。存放在主板固件中,用来描述硬件信息的表。通常由 Clover 或者 OpenCore 自动加载,我们一般也不会直接对其进行修改。

SSDT

Secondary System Description Table。我们可以把它看成是 DSDT 的补丁程序。它也是我们最需要掌握的操作。通过修改 SSDT 我们可以激活黑苹果的电源管理、触摸板、屏蔽独显等操作。

参考资料

Clover 文档

OpenCore 官方文档的解释

OpenCore 对 SSDT 和 DSDT 的解释