The @nx/conformance plugin allows Nx Powerpack and Nx Enterprise users to write and apply rules for your entire workspace that help with consistency, maintainability, reliability and security. Powerpack is available for Nx version 19.8 and higher.
Why Conformance?
Section titled “Why Conformance?”Large organizations struggle with maintaining consistency across teams and projects. Manual audits don't scale and developers can't remember every standard. Conformance provides automated governance that catches issues before they reach production and enforces policies without manual intervention.
What Does Conformance Do?
Section titled “What Does Conformance Do?”The @nx/conformance plugin lets you write custom rules in TypeScript that enforce your organization's standards across any language or technology in your codebase. Rules can complement existing linting tools by verifying proper configuration, or enforce entirely new policies around security, architecture, or documentation requirements.
The plugin also provides the following pre-written rules:
- Enforce Project Boundaries: Similar to the Nx ESLint Enforce Module Boundaries rule, but enforces the boundaries on every project dependency, not just those created from TypeScript imports or
package.jsondependencies. - Ensure Owners: Require every project to have an owner defined for the
@nx/ownersplugin
The @nx/conformance plugin requires an Nx Powerpack or Nx Enterprise license to function. Activating Powerpack is a simple process.
Get a License and Activate Powerpack or Nx EnterpriseUnlock all the features of the Nx CLI
Then, add the Conformance plugin to your workspace.
Configure Conformance Rules
Section titled “Configure Conformance Rules”Conformance rules are configured in the conformance property of the nx.json file. You can use the pre-defined rules or reference your own custom rule. See the plugin documentation for more details.
{ "conformance": { "rules": [ { "rule": "@nx/conformance/enforce-project-boundaries", "options": { "depConstraints": [ { "sourceTag": "scope:shared", "onlyDependOnProjectsWithTags": ["scope:shared"] } ] } }, { "rule": "@nx/conformance/ensure-owners", "projects": ["!experimental-app"] }, { "rule": "./tools/local-conformance-rule.ts" } ] }}Enforce Rules with the nx conformance and nx conformance:check Commands
Section titled “Enforce Rules with the nx conformance and nx conformance:check Commands”The @nx/conformance plugin enables two commands:
nx conformance: Evaluates rules and applies any available fix generators. Changes are written to disk and rules are evaluated once more to calculate how many violations were fixed. Use this locally while working on feature branches.nx conformance:check: Evaluates rules only. Fix generators are not applied (useful for CI).
Fix generators are only applied for rules whose final status is not disabled.
- name: Enforce all conformance rules run: npx nx conformance:check- name: Enforce all conformance rules run: npx nx-cloud record -- npx nx conformance:checkUse npx nx-cloud record -- to capture the logs for nx conformance:check in the Nx Cloud dashboard.
- name: Enforce all conformance rules run: npx nx-cloud record -- npx nx-cloud conformance:checkHere we are using the nx-cloud CLI to run the conformance:check command so that we can hook into the power of Conformance rules configured in your Nx Cloud Enterprise organization. Learn more about conformance rules in Nx Cloud.
If a valid Powerpack license is not available to the workspace (either locally or via Nx Cloud), the nx conformance and nx conformance:check commands will fail without checking any rules.
Taking things further with Nx Cloud Enterprise
Section titled “Taking things further with Nx Cloud Enterprise”Organizations on the Nx Cloud Enterprise plan can publish custom conformance rules to their Nx Cloud organization without the friction of a custom registry, and then configure the rules to apply to the workspaces in their organization automatically when nx-cloud conformance or nx-cloud conformance:check is run (note that the nx-cloud CLI is used in this case in order to handle the authentication with Nx Cloud).
The Powerpack license will be applied automatically via Nx Cloud in all contexts, and so there is zero setup required for the end developer.
Simply add an appropriate invocation of the nx-cloud conformance:check command to your CI process and all cloud configured rules will be applied and merged with any local rules:
- name: Enforce all conformance rules run: npx nx-cloud record -- npx nx-cloud conformance:checkLearn more about publishing and configuring conformance rules in Nx Cloud.
Learn More
Section titled “Learn More”- Conformance Plugin API Reference - Detailed documentation on configuration options and provided rules
- Create a Custom Conformance Rule - Step-by-step guide to writing your own rules
- Testing Conformance Rules - Learn how to test your conformance rules
- Publish Conformance Rules to Nx Cloud - Share rules across your organization
- Configure Conformance Rules in Nx Cloud - Manage rules via the Nx Cloud dashboard
- Blog: Automating Consistency with Nx Cloud Conformance - Learn about the philosophy and benefits of conformance