json nx:run-commands默认参数值

6tqwzwtp  于 2023-06-07  发布在  其他
关注(0)|答案(1)|浏览(183)

我有React库内创建的nx单仓库使用这个版本
nx: 15.6.3
我在packages/my-library命令中添加了多个命令
generate react componentgenerate 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的值没有被传递,我们如何默认它的值?

6pp0gazn

6pp0gazn1#

Args Interpolationby nx:run-commandsShell Parameter Expansion组合使用,如下所示:

"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}\"/undefined/common}/{args.name}/{args.name}.tsx",
            "forwardAllArgs": true
          }
        ],
        "cwd": "packages/core",
        "parallel": false
      }
    },

在上面的示例中,nx:run-commands executor将用相应的值替换任何出现的/{args\.([^}]+)}/g regex,并作为参数传递给命令,其中缺少的参数将被视为undefined。因此,传递给Shell的结果命令看起来像${"undefined"/undefined/common},我们使用Shell参数扩展将其与"undefined"匹配,并将其替换为"common"

相关问题