命令行介绍
版本控制
请在安装@reskript/*依赖时,使用-D -E参数。其中-E(或--save-exact)将会安装一个固定的版本,而不是默认地使用^x.y.z版本范围。
当你安装固定版本时,我们可以保持所有的@reskript/*包版本一致,不会因为后续更新其它不相关依赖时“不幸”影响了部分包,导致各包之间版本不一致。
caution
reSKRipt无法保证各个包版本不一致时的行为是符合预期的,因此保证它们版本一致非常重要。
当然我们建议你及时更新到最新版本,但依然使用固定版本以保持它们一致。
按需安装
所有的skr命令行均以@reskript/cli-为包前缀,其后跟随命令名称。当一个命令需要执行的时候,如果本地安装由这个@reskript/cli-xxx包,则会直接调用它,如果没有,skr会尝试自动安装。
自动安装一个缺失的命令包需要你的项目满足以下要求:
- 你在安装
@reskript/*包时,使用了精确的版本号,即在npm install、yarn add、pnpm add时使用--save-exact(或-E)参数,在你的package.json中,版本不是^x.y.z的形式,而是一个x.y.z的精确版本号。 - 你的项目必须启用了git版本管理,即在根目录下有
.git文件夹。 - 你的项目在根目录(
.git文件夹所在目录)下有一个包管理器的版本锁文件,可以是package-lock.json、yarn.lock或pnpm-lock.yaml。
在满足这些条件的前提下,命令行会提示你自动安装:
We're going to install @reskript/cli-dev for you, continue? (y/N)
此时按下回车即会自动安装后继续执行命令,如果选择N则自动退出,你可以手动安装相应的包来继续使用。
全局控制标记
你可以使用SKR_FLAGS来引导reSKRipt几乎所有功能的行为,SKR_FLAGS是一个用逗号分隔的字符串,其中每一项是一个标记,你可以这样来使用:
SKR_FLAGS=all skr build
当然我们也建议你使用export SKR_FLAGS=all在全局持久化地打开这些标记。
当前SKR_FLAGS支持以下值的组合:
deprecation-error:当包含这个开头时,所有标记为废弃的功能不仅仅是给予警告提示,而会报错并退出程序。这个开关有助于你清理reSKRipt计划在下一个大版本废弃的功能,可使大版本的升级变得更加轻松顺滑。
另外,你可以使用all这个标记打开所有当前支持的功能。
调试模式
使用SKR_LOGGING=debug环境变量,可以在命令行输出一些调试信息,用于排查问题。
退出码
执行skr命令时,所有已知的退出码与对应情况如下,剩余异常退出均使用99为退出码。
10:Node版本不符合要求。11:指定的命令不存在或初始化错误。12:未指定具体的命令。13:项目依赖不满足当前的命令。20:编译单个文件时出现错误。21:配置或命令行参数相关错误。22:构建过程内部错误。23:构建产出检查错误。24:项目结构相关错误。25:代码规范检查错误。99:未知错误。