https://www.yarnpkg.com/en/docs/cli/
Yarn提供了丰富的命令行命令集,可帮助您了解Yarn软件包的各个方面,包括安装,管理,发布等。虽然此处按字母顺序提供了所有可用的命令,但一些更流行的命令是:
- yarn add:添加一个要在当前软件包中使用的软件包。
- yarn init:初始化程序包的开发。
- yarn install:安装在package.json文件中定义的所有依赖项。
- yarn publish:将程序包发布到程序包管理器。
- yarn remove:从当前包装中移除未使用的包装。
默认命令
不使用任何命令运行yarn都会运行纱线安装,并传递任何提供的标志。
用户定义的脚本
运行yarn <script> [<args>]将运行用户定义的脚本。参见yarn运行。
本地安装的CLI
运行yarn <command> [<args>] 如果与本地安装的CLI匹配,将运行该命令。因此,您无需为简单的用例设置用户定义的脚本。
并发和--mutex
当在同一服务器上以同一用户身份运行多个yarn实例时,可以通过传递全局标志--mutex和文件或网络来确保在给定的时间仅运行一个实例(并避免冲突)。使用文件Yarn时,默认情况下将在当前工作目录中写入/读取互斥文件.yarn-single-instance。您还可以指定备用或全局文件名。
--mutex file
--mutex file:/tmp/.yarn-mutex
使用网络时,默认情况下,Yarn将在端口31997处创建服务器。您还可以指定备用端口。
--mutex network
--mutex network:30330
详细输出--verbose
运行yarn <command> --verbose将为执行打印详细信息(创建目录,复制文件,HTTP请求等)。
yarn add
安装软件包及其依赖的任何软件包。
通常,包只是带有代码的文件夹和描述内容的package.json文件。当您要使用另一个软件包时,首先需要将其添加到依赖项中。这意味着运行yarn add [package-name]将其安装到您的项目中。这还将更新您的package.json和yarn.lock,以便其他从事该项目的开发人员在运行yarn或yarn install时将获得与您相同的依赖项。大多数软件包将从npm注册表中安装,并以其软件包名称简称。例如,yarn add react将从npm注册表中安装react软件包。
您可以使用以下选项之一指定版本:
- yarn add package-name将安装软件包的“最新”版本。
- yarn add package-name@1.2.3从注册表中安装特定版本的软件包。
- yarn add package-name@tag会安装特定的“标签”(例如beta,next或最新的)。
您还可以指定来自不同位置的软件包:
- yarn add package-name将从npm注册表中安装软件包,除非您在package.json中指定了另一个软件包。
- yarn add file:/path/to/local/folder安装本地文件系统上的软件包。这对于测试尚未发布到注册表的其他软件包很有用。
- yarn add file:/path/to/local/tarball.tgz从压缩的tarball安装软件包,该软件包可用于在发布之前共享软件包。
- yarn add link:/ path / to / local / folder将符号链接安装到本地文件系统上的软件包。这对于在monorepo环境中开发相关软件包很有用。
- yarn add <git remote url>从远程git仓库安装软件包。
- yarn add <git remote url>#<branch / commit / tag>从远程git存储库中的特定git分支,git commit或git tag安装软件包。
- yarn add https://my-project.org/package.tgz从远程压缩的tarball安装软件包。
注意事项
如果以前使用过像npm这样的软件包管理器,则可能正在寻找如何添加全局依赖项。对于绝大多数软件包,由于它们是隐式的,因此具有全局依赖性被认为是不好的做法。最好在本地添加所有依赖项,以便它们是显式的,并且使用您的项目的其他任何人都将获得相同的依赖项集。如果尝试使用具有bin的CLI工具,则可以在./node_modules/.bin目录中访问它们。您还可以使用全局命令:
yarn global add <package...>
命令
yarn add <package...>这将在您的依赖项中安装一个或多个软件包。
yarn add <package...> [--dev/-D]使用--dev或-D将在devDependencies中安装一个或多个软件包。
yarn add <package...> [--peer/-P]使用--peer或-P将在您的peerDependencies中安装一个或多个软件包。
yarn add <package...> [--optional/-O]使用--optional或-O将在optionalDependencies中安装一个或多个软件包。
yarn add <package...> [--exact/-E]使用--exact或-E将软件包安装为确切版本。默认设置是使用具有相同主版本的最新版本。例如,yarn add foo@1.2.3将接受版本1.9.1,而yarn add foo@1.2.3 --exact将仅接受版本1.2.3。
yarn add <package...> [--tilde/-T]使用--tilde或-T安装具有相同次要版本的软件包的最新版本。默认设置是使用具有相同主版本的最新版本。例如,yarn add foo@1.2.3 --tilde将接受1.2.9,但不接受1.3.0。
yarn add <package...> [--ignore-workspace-root-check/-W]使用--ignore-workspace-root-check或-W允许将软件包安装在工作区根目录下。这通常不是期望的行为,因为通常期望依赖项是工作空间的一部分。例如,在工作区根目录下添加yarn lerna --ignore-workspace-root-check --dev将允许lerna在根package.json的脚本中使用。
yarn add <alias-package>@npm:<package>这将在自定义别名下安装软件包。别名,允许安装相同依赖项的多个版本,每个版本都通过给定的别名包名称进行引用。例如,yarn add my-foo @ npm:foo将在依赖项中以指定别名my-foo安装软件包foo(最新版本)。另外,yarn add my-foo @ npm:foo@1.0.1允许安装特定版本的foo。
yarn add <package...> --audit检查已安装软件包的已知安全问题。发现的问题数量将添加到输出中。有关详细信息,请使用yarn audit命令。
yarn audit
对已安装的软件包执行漏洞审核。
yarn audit [--verbose] [--json] [--level]
检查已安装软件包的已知安全问题。输出是已知问题的列表。您必须在线才能执行审核。如果指定了[--offline] general标志,则将跳过审核。如果发现任何严重性问题,该命令将以非零退出代码退出。退出代码将掩盖严重性。
- 1 for INFO
- 2 for LOW
- 4 for MODERATE
- 8 for HIGH
- 16 for CRITICAL
例如,如果仅找到INFO和MODERATE漏洞,则退出代码将为1 + 4 = 5.
为了编写脚本,yarn audit还支持--json标志,该标志将以JSON行格式(每行一个JSON对象)而不是纯文本格式输出问题的详细信息。如果您在使用audit命令时遇到问题,请使用--verbose标志运行,该标志将输出yarn发送到npm注册表的JSON数据以及响应数据,并在GitHub上打开一个包含此数据的问题。
命令
yarn audit [--level info|low|moderate|high|critical]
应用级别标志会将审核表限制为相应级别和更高级别的漏洞。它不会影响命令的退出代码。
yarn autoclean
从软件包依赖项中清除并删除不必要的文件。
yarn autoclean [-I/--init] [-F/--force]
autoclean命令通过从依赖项中删除不必要的文件和文件夹来释放空间。这样可以减少项目的node_modules文件夹中的文件数,这在将包直接检入版本控制的环境中很有用。
注意:仅在高级用例中考虑此命令。除非您遇到与node_modules一起安装的文件数量问题,否则不建议使用此命令。它将永久删除node_modules中的文件,这可能导致程序包停止工作。
默认情况下,自动清除功能是禁用的。要启用它,请手动创建.yarnclean文件,或运行yarn autoclean --init以使用默认条目创建文件。.yarnclean文件应添加到版本控制中。程序包中存在.yarnclean文件时,将启用自动清理功能。清理将执行:
- 运行install后
- 运行add后
- 运行yarn autoclean --force命令
通过读取.yarnclean文件的每一行并将每行用作要删除的文件的全局模式来执行清理。
选项:
-I /-init:如果.yarnclean文件不存在,则创建它,并添加默认条目。然后应检查并编辑此文件,以自定义要清除的文件。如果文件已经存在,则不会被覆盖。
-F /-force:如果存在.yarnclean文件,请运行清理过程。如果该文件不存在,则不执行任何操作。
默认:
使用yarn autoclean --init命令创建.yarnclean文件时,该文件将预先填充一组默认项以供删除。此默认列表是对可能不需要的猜测。无法预测所有现有和将来的NPM软件包实际上不必要的所有目录和文件,因此此默认列表可能会导致软件包不再起作用。强烈建议您手动查看.yarnclean中的默认条目,并根据需要对其进行自定义。如果发现自动清除过程正在删除软件包正常运行所需的文件,则应从.yarnclean文件中删除相应的条目。
示例:
您决定可以安全地删除node_modules中安装的所有依赖项中的所有YAML和Markdown文件。您制作一个包含以下内容的.yarnclean文件:
*.yaml
*.md
然后运行yarn install或yarn autoclean --force。清理过程将递归删除node_modules /中的所有* .yaml和* .md文件(包括嵌套的传递依赖项)。
yarn bin
显示yarn bin文件夹的位置。
yarn bin [<executable>]
yarn bin将打印文件夹,yarn将在其中安装程序包的可执行文件。可执行文件的示例可能是您为包定义的脚本,该脚本可以通过yarn run执行。
$ yarn bin
/home/emillumine/Code/Funkwhale/funkwhale/front/node_modules/.bin
yarn bin <executable>
将打印可执行文件的路径。
$ yarn bin gettext-compile
/home/emillumine/Code/Funkwhale/funkwhale/front/node_modules/.bin/gettext-compile