composer如何在CI/CD中使用离线依赖?
离线依赖的本质不是“完全不联网”,而是让 composer install 不依赖实时网络拉包。关键在提前把所有依赖(含递归依赖)和元数据固化下来,CI 环境只做本地还原。
技术博客
离线依赖的本质不是“完全不联网”,而是让 composer install 不依赖实时网络拉包。关键在提前把所有依赖(含递归依赖)和元数据固化下来,CI 环境只做本地还原。
Sublime Text 本身不原生支持 ReasonML 或 ReScript,但两者共享同一套语法定义(.re 文件),核心在于加载正确的 Syntax Definition。ReScript 官方已弃用旧的 reason-sublime 插件,现在唯一稳定可用的是社区维护的 rescript-sublime —— 它基于 Sublime 的 .sublime-syntax 格式重写,兼容 Sublime Text 4(Build 4126+)。
它本质是个静态站点生成器,不是运行时服务。你跑一次 bin/satis build,它就扫一遍 composer.json 里写的包,拉代码、打标签、生成一堆 packages.json 和压缩包链接——然后就结束了。没有后台进程,不监听端口,也不自动更新。
乱码不是文件坏了,是 Sublime 读错了编码。关键不是“转”,而是“重读”——用正确的编码重新解析字节流。Reload with Encoding 不改变文件内容,只改解释方式。
只要 composer.lock 文件还在,composer install 就会严格按它还原依赖,根本不需要“回滚命令”。很多人误以为要执行什么特殊操作,其实只是没意识到锁文件才是真相。
根本原因是 Sublime Text 默认不读取 VS Code 风格的 launch.json——它压根不认识这个文件。Sublime Debugger(即 subl-debugger)用的是自己的一套配置机制,叫 .sublime-debugger,放在项目根目录或用户配置目录下。
能,但前提是 vendor 是完整、可运行的——不是半截子安装结果。它不依赖 composer 命令本身,只依赖已生成的自动加载器和包代码。关键在于:你得确保 vendor/autoload.php 存在且能正常执行,且所有依赖的 PHP 版本、扩展(如 json、mbstring)在目标机器上已就位。
不能。这是个常见误解:bin-compat 是 Composer 自身的内部配置项,只影响 vendor/bin/ 下可执行脚本的生成方式,和 Windows/Linux 兼容性无直接关系。它不改变 PHP 代码行为,也不解决路径分隔符、换行符或 shell 命令差异问题。
Composer 默认联网拉取包,断网时会直接失败。它本身不支持“手动扔个 zip 进去就用”,但能通过本地仓库机制绕过网络——前提是这个 zip 包得是 Composer 兼容的格式(含 composer.json,且结构正确)。
根本原因是系统没装编译器,或 Sublime 找不到 g++ 路径。Windows 默认没有 g++,macOS 自带的 clang++ 不叫 g++,Linux 也得手动装 build-essential(Ubuntu/Debian)或 gcc-c++(CentOS/Fedora)。