跳转到主要内容
本文基于源代码调查整理。这是刚打上 v0.1 标签的早期开发阶段的包(截至 2026 年 5 月)。

什么是 Laravel Chisel

Laravel Chisel 是一个为构建安装后脚本提供原语的包,用来在 Laravel 启动套件中删除不需要的功能。 启动套件预装了很多功能,但根据项目情况,有些功能可能是多余的。Chisel 通过提供在安装后交互式地“只保留需要的功能”的机制来解决这个问题。

为什么需要它

Laravel 启动套件捆绑了大量功能,但并不是每个项目都需要所有这些功能。举例来说:
  • 不需要邮件验证的项目
  • 不使用 Passkey 认证的项目
  • 不需要某些 Livewire 组件的构成
以前需要手动删除不需要的功能,而使用 Chisel,在安装时通过交互式提示就能完成定制

chisel.php 脚本定义

使用 Chisel 的启动套件会在项目根目录放置一个 chisel.php 文件。这个文件定义了“哪些功能作为可选项”。

脚本定义方法

交互式回答收集

collectAnswers() 会返回一个回答收集器。所有方法都是流式的,可以任意顺序调用。在非交互式环境下会自动使用默认值。 外部的 Artisan 命令使用 Laravel Prompts 来显示提示,并把回答传递给 Chisel。

文件变更

file($path) 处理单个文件,用 files(...$paths) 处理多个文件。

基于 PHP AST 的编辑

php($path) 提供基于 PHP AST 的编辑。当对象被销毁时,更改会自动保存。 关于 PHP AST(抽象语法树)基础与 nikic/php-parser 的使用方法,可以参考这里

Section Markers

用一对注释包裹可选的代码。
在 JSX 文件中使用花括号({})包裹的块注释。
  • removeSectionMarkers('passkeys') — 删除标记但保留代码
  • removeSection('passkeys') — 标记和代码一起删除
chisel- 前缀会自动添加。

npm 支持

npm() 方法会自动检测 npm、yarn、pnpm、bun。

当前开发状态

  • GitHub 仓库:laravel/chisel
  • 版本:v0.1(2026 年 5 月公开)
  • 开发时间:经历约 3 个月的非公开开发后公开
Chisel 不是终端用户直接安装到 Laravel 应用中的包,而是启动套件内部使用的库。未来 Laravel 官方启动套件预计会基于 Chisel 提供安装后脚本。

laravel/chisel 仓库

源代码和最新的 API 参考请查看这里。

Laravel 启动套件官方文档

启动套件本身的使用方法请参考官方文档。
最后修改于 2026年7月18日