我有React库内创建的nx单仓库使用这个版本nx: 15.6.3
我在packages/my-library命令中添加了多个命令generate react component
generate react-stories
使用这些插件@nrwl/react:component
-@nrwl/react:component-story
这就是目标
"generate-atom": {
"executor": "nx:run-commands",
"options": {
"commands": [
{
"command": "nx g @nrwl/react:component --project=core --style=@emotion/styled --export --directory=atoms/{args.group} --name={args.name}",
"forwardAllArgs": true,
"bgColor": "bgBlue"
},
{
"command": "nx g @nrwl/react:component-story --project=core --componentPath=atoms/{args.group || 'common'}/{args.name}/{args.name}.tsx",
"forwardAllArgs": true
}
],
"cwd": "packages/core",
"parallel": false
}
},
当我从nx packages/core/src/atoms/undefined/button
调用这个目标时,组件在内部被创建
这是我使用的命令npx nx run core:generate-atom --args="--name=button"
如果group
的值没有被传递,我们如何默认它的值?
1条答案
按热度按时间6pp0gazn1#
Args Interpolationby
nx:run-commands
和Shell Parameter Expansion组合使用,如下所示:在上面的示例中,
nx:run-commands
executor将用相应的值替换任何出现的/{args\.([^}]+)}/g
regex,并作为参数传递给命令,其中缺少的参数将被视为undefined
。因此,传递给Shell的结果命令看起来像${"undefined"/undefined/common}
,我们使用Shell参数扩展将其与"undefined"
匹配,并将其替换为"common"
。