docs(nx-dev): creating conformance rules docs adjustments (#30038)
This commit is contained in:
parent
888957a010
commit
d36e4aa9ee
@ -11,16 +11,21 @@ nx generate @nx/js:library cloud-conformance-rules
|
|||||||
The Nx Cloud distribution mechanism expects each rule to be created in a named subdirectory in the `src/` directory of our new project, and each rule directory to contain an `index.ts` and a `schema.json` file. You can read more about [creating a conformance rule](/nx-api/powerpack-conformance/documents/create-conformance-rule) in the dedicated guide. For this recipe, we'll generate a default rule to use in the publishing process.
|
The Nx Cloud distribution mechanism expects each rule to be created in a named subdirectory in the `src/` directory of our new project, and each rule directory to contain an `index.ts` and a `schema.json` file. You can read more about [creating a conformance rule](/nx-api/powerpack-conformance/documents/create-conformance-rule) in the dedicated guide. For this recipe, we'll generate a default rule to use in the publishing process.
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
nx g @nx/powerpack-conformance:create-rule --name=test-cloud-rule --directory=cloud-conformance-rules/src/test-cloud-rule --category=reliability --description="A test cloud rule" --reporter=non-project-files-reporter
|
nx g @nx/powerpack-conformance:create-rule --name=test-cloud-rule --directory=cloud-conformance-rules/src --category=reliability --description="A test cloud rule" --reporter=non-project-files-reporter
|
||||||
```
|
```
|
||||||
|
|
||||||
We now have a valid implementation of a rule and we are ready to build it and publish it to Nx Cloud. The [`@nx/powerpack-conformance` plugin](/nx-api/powerpack-conformance) provides a [dedicated executor called `bundle-rules`](/nx-api/powerpack-conformance/executors/bundle-rules) for creating appropriate build artifacts for this purpose, so we will wire that executor up to a new build target in our `cloud-conformance-rules` project's `project.json` file:
|
{% callout type="warning" title="Adding the @nx/powerpack-conformance plugin" %}
|
||||||
|
If you get an error resolving the `@nx/powerpack-conformance` plugin, you may need to add it. You can do this by running `nx add @nx/powerpack-conformance` in your workspace.
|
||||||
|
{% /callout %}
|
||||||
|
|
||||||
|
We now have a valid implementation of a rule and we are ready to build it and publish it to Nx Cloud. The [`@nx/powerpack-conformance` plugin](/nx-api/powerpack-conformance) provides a [dedicated executor called `bundle-rules`](/nx-api/powerpack-conformance/executors/bundle-rules) for creating appropriate build artifacts for this purpose. We will replace the existing build target and wire up that executor in our `cloud-conformance-rules` project's `project.json` file:
|
||||||
|
|
||||||
```jsonc {% fileName="cloud-conformance-rules/project.json" %}
|
```jsonc {% fileName="cloud-conformance-rules/project.json" %}
|
||||||
{
|
{
|
||||||
// ...any existing project.json content
|
// ...any existing project.json content
|
||||||
"targets": {
|
"targets": {
|
||||||
// ...any existing targets
|
// ...any other existing targets
|
||||||
|
// new build target:
|
||||||
"build": {
|
"build": {
|
||||||
"executor": "@nx/powerpack-conformance:bundle-rules",
|
"executor": "@nx/powerpack-conformance:bundle-rules",
|
||||||
"outputs": ["{options.outputPath}"],
|
"outputs": ["{options.outputPath}"],
|
||||||
@ -32,6 +37,10 @@ We now have a valid implementation of a rule and we are ready to build it and pu
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
{% callout type="note" %}
|
||||||
|
Remove the existing `lib` directory within the `cloud-conformance-rules` project, as it is no longer needed. Each rule will have its own directory, which is generated by the `create-rule` generator, and will need to always have `index.ts` and `schema.json` files.
|
||||||
|
{% /callout %}
|
||||||
|
|
||||||
We can now run `nx build cloud-conformance-rules` to build our rule and create the build artifacts in the `cloud-conformance-rules/dist` directory (or wherever you prefer to configure that `outputPath` location). If we take a look at the output path location we will see the same structure of one named subdirectory per rule, now containing the (bundled) `index.js` and `schema.json` files.
|
We can now run `nx build cloud-conformance-rules` to build our rule and create the build artifacts in the `cloud-conformance-rules/dist` directory (or wherever you prefer to configure that `outputPath` location). If we take a look at the output path location we will see the same structure of one named subdirectory per rule, now containing the (bundled) `index.js` and `schema.json` files.
|
||||||
|
|
||||||
Our final step is to publish the rule artifacts to Nx Cloud. We achieve this by running the `publish-conformance-rules` command on the `nx-cloud` CLI, passing the output path location as the first positional argument:
|
Our final step is to publish the rule artifacts to Nx Cloud. We achieve this by running the `publish-conformance-rules` command on the `nx-cloud` CLI, passing the output path location as the first positional argument:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user