工作区监视
注意
工作区监视功能从 Lerna 6.4.0 版本开始可用。
Lerna 可以监视包内的文件更改,并自动执行存储库根目录中的命令。如果您需要在开发工作流程中更新文件时重建包或重新运行测试,这将非常有用。
这取代了手动为每个包单独设置监视的需要。
示例
监视所有包并回显包名称和已更改的文件
$ lerna watch -- echo \$LERNA_PACKAGE_NAME \$LERNA_FILE_CHANGES
监视所有包,并在包内文件更改时运行该包的“build”脚本
$ lerna watch -- lerna run build --scope=\$LERNA_PACKAGE_NAME
监视所有包,并对受更改影响的所有内容运行“build”脚本
$ lerna watch -- lerna run build --since
监视单个包,并在该包内文件更改时运行其“build”脚本
$ lerna watch --scope="my-package-1" -- lerna run build --scope=\$LERNA_PACKAGE_NAME
监视单个包及其依赖项,并在任何更改的依赖项上运行“build”脚本
$ lerna watch --scope="my-package-1" --include-dependencies -- lerna run build --scope=\$LERNA_PACKAGE_NAME
监视所有包,并为已更改的包及其所有依赖包运行 build
脚本
$ lerna watch -- lerna run build --scope=\$LERNA_PACKAGE_NAME --include-dependents
有关更高级的过滤,请参阅过滤选项 文档。有关更多可用选项,请参阅lerna watch
文档。
监视环境变量
运行内部命令时,Lerna 将设置环境变量 $LERNA_PACKAGE_NAME
和 $LERNA_FILE_CHANGES
。这些可用于自定义运行的命令。
$LERNA_PACKAGE_NAME
将替换为已更改的包的名称。$LERNA_FILE_CHANGES
将替换为已更改的文件。如果在一个周期中检测到多个文件更改,则$LERNA_FILE_CHANGES
将列出所有文件,并用空格分隔。
注意
使用 $LERNA_PACKAGE_NAME
和 $LERNA_FILE_CHANGES
时,需要使用反斜杠 (\
) 对 $
进行转义。请参阅上面的示例。
使用包管理器运行
上面的示例展示了在终端中直接使用 lerna
的方法。但是,您也可以通过包管理器使用 lerna
,而无需将其添加到您的路径中
pnpm
pnpm lerna watch -- lerna run build --scope=\$LERNA_PACKAGE_NAME
yarn
yarn lerna -- watch -- lerna run build --scope=\$LERNA_PACKAGE_NAME
npx
npx -c 'lerna watch -- lerna run build --scope=\$LERNA_PACKAGE_NAME'
注意
使用 npx
时,需要使用 -c
并将整个 lerna watch
命令用单引号 ('
) 括起来。否则,npx
将尝试在将命令传递给 lerna
之前替换监视环境变量,导致 $LERNA_PACKAGE_NAME
和 $LERNA_FILE_CHANGES
的值始终为空。
注意
如果您在 Windows 中使用 Lerna,则必须将环境变量放在 '%' 中。例如
$ lerna watch -- lerna run build --scope=%LERNA_PACKAGE_NAME% --include-dependents