composer怎么解决2g内存限制_composer超大内存占用优化
不是网络慢,也不是包源问题,composer install 在解析依赖阶段爆 Allowed memory size exhausted,基本就是 PHP 内存限制撞上了 Composer 本身的高开销。2G 是常见上限,但 Composer 2.x 在复杂项目里轻松吃掉 1.5G+,尤其带大量 require-dev 或历史版本约束时。
技术博客
不是网络慢,也不是包源问题,composer install 在解析依赖阶段爆 Allowed memory size exhausted,基本就是 PHP 内存限制撞上了 Composer 本身的高开销。2G 是常见上限,但 Composer 2.x 在复杂项目里轻松吃掉 1.5G+,尤其带大量 require-dev 或历史版本约束时。
它不提供图形化向导,也不在菜单里放个 New Project。所谓“项目”,只是 Sublime 记住了一组打开的文件夹路径 + 一些配置(比如构建系统、设置覆盖),本质是生成一个 .sublime-project 文件。你得手动创建或让 Sublime 自动帮你存。
Composer 默认把依赖装进 vendor 目录,想改名字,最直接的方式是在项目根目录的 composer.json 里加配置项。不是全局改,是每个项目自己决定。
打开文件后,状态栏(窗口最底部)右下角会直接显示类似 127:5 的信息,其中 127 就是当前光标所在行号,而整个文件的总行数需要手动触发查看——它默认不主动显示总行数,但有快捷方式。
宝塔默认会在 PHP 配置中禁用 putenv、proc_open 等函数,而 Composer v2+ 的 self-update 必须调用它们——所以你敲了命令却提示“权限不足”“无法写入”,甚至直接静默失败,大概率不是权限问题,而是 PHP 层面拦住了。
这是最常见场景:本地 PHP 版本或扩展(如 ext-gd、ext-mbstring)不满足 composer.json 中 config.platform 或依赖包的 require 声明,导致安装中断。
Sublime 的用户配置不是散落在各处,而是严格集中在 Packages/User 文件夹里。不同系统路径如下,务必用 Preferences → Browse Packages… 菜单确认(比记路径更可靠):
直接在 composer.json 的 config.platform.php 或根级 require.php 中声明,二者作用完全不同:require.php 是项目运行所依赖的 PHP 最低(及可选上限)版本,Composer 会据此筛选兼容的包;config.platform.php 是“假装”当前环境是某个 PHP 版本,用于构建或 CI 场景下绕过本地真实版本限制。
绝大多数现代项目(Python/JS/TS/Vue等)明确禁止使用真实t字符缩进,因为跨编辑器、Git diff、CI校验时极易出错。Sublime默认开启translate_tabs_to_spaces,本质是「帮你规避问题」。如果你因特殊场景(如写Makefile、shell脚本、或对接老系统)必须让Tab键插入原生Tab,请关闭该开关——但要清楚代价:后续所有自动缩进、代码折叠、格式化功能都可能异常。
Sublime 默认开启括号匹配,但很多人改过设置后把它关掉了,结果装了插件也“没反应”——其实根本没走到插件那步。必须先确保原生功能正常,否则 BracketHighlighter 的高亮可能被压制或覆盖。