运行yarn affected:dep-graph时提示"Invalid options provided"的解决方法
affected:dep-graph脚本执行失败 背景
我正在创建NX工作区以了解其工作机制,按照Nrwl官网的入门指南执行了如下操作:
yarn global add @nrwl/schematics create-nx-workspace myworkspace
随后我创建了一个库和两个使用该库的应用,且能通过ng serve appName启动这两个应用。但尝试测试package.json中的NX默认脚本时失败,执行命令后返回如下错误:
ibenjelloun@COMPUTER MINGW64 /s/tmp/myworkspace (master) $ yarn affected:dep-graph yarn run v1.7.0 $ ./node_modules/.bin/nx affected:dep-graph Invalid options provided error Command failed with exit code 1. info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
请问需如何操作才能让该脚本正常运行?我遗漏了什么?
解决方案
根据你遇到的问题,以下几个步骤可以帮你排查并解决:
确保Git仓库已初始化并完成首次提交
NX的affected系列命令完全依赖Git历史记录来识别变更的项目,如果你还没有初始化Git仓库或者没有提交过任何代码,命令会因为找不到对比基准而报错。执行以下步骤补全:git init git add . git commit -m "Initial commit"完成后再尝试运行
yarn affected:dep-graph。手动指定
affected命令的基准参数
即使有Git提交,若没有明确指定对比的基准分支或提交,命令也可能报错。你可以手动添加--base和--head参数来明确范围:yarn affected:dep-graph --base=master~1 --head=master这个命令会对比当前
master分支和它的上一个提交,生成对应的依赖关系图。升级Yarn到稳定版本
你使用的Yarn 1.7.0版本相对老旧,可能和新版NX存在兼容性问题。升级到最新稳定版:npm install -g yarn升级完成后重新运行脚本试试。
安装本地NX核心依赖
全局安装的@nrwl/schematics可能和工作区内的本地依赖版本不一致,导致命令执行异常。建议在工作区本地安装NX核心包:yarn add -D @nrwl/workspace这样脚本会优先使用本地的NX命令,避免版本冲突。
验证
nx.json配置文件
检查工作根目录下是否存在nx.json,并且配置项是否正确。如果文件缺失,可以通过以下命令重新生成:nx init生成后确认
affected相关的配置没有错误。
内容的提问来源于stack exchange,提问作者ibenjelloun

