Skip to main content

Getting Started

Prerequisites#

Installation#

NPM#

npm i --save-dev @nx-dotnet/corenpx nx g @nx-dotnet/core:init

PNPM#

pnpm i --save-dev @nx-dotnet/corepnpx nx g @nx-dotnet/core:init

Yarn#

yarn add --dev @nx-dotnet/corenpx nx g @nx-dotnet/core:init

Generate and run your first api!#

Generate my-api, and my-api-test with C# and nunit tests.

npx nx g @nx-dotnet/core:app my-api --test-template nunit --language C#

Run my-api locally

npx nx serve my-api

nrwl/nx/enforce-module-boundaries support#

Nrwl publishes an eslint rule for enforcing module boundaries based on tags in a library. We recently added similar support to nx-dotnet.

To avoid duplicating the rules configuration, if your workspace already has it, nx-dotnet can read the dependency constraints from your workspace's eslint files. It does this by looking at what is configured for typescript files.

If your workspace does not currently contain eslint, do not worry! You do not have to install eslint just for its configuration. The same dependency constraints can be placed inside of your .nx-dotnet.rc.json file at workspace root. This should look something like below:

{  "moduleBoundaries": [    {      "onlyDependOnLibsWithTags": ["a", "shared"],      "sourceTag": "a"    },    {      "onlyDependOnLibsWithTags": ["b", "shared"],      "sourceTag": "b"    },    {      "onlyDependOnLibsWithTags": ["shared"],      "sourceTag": "shared"    }  ],  "nugetPackages": {}}

API Reference

Generators#

library#

nx-dotnet generator

application#

Generate a new C# project.

project-reference#

Adds a reference from one project to another.

init#

init generator

sync#

sync generator

nuget-reference#

nuget-reference generator

restore#

Restores NuGet packages and .NET tools used by the workspace

test#

Generate a .NET test project for an existing application or library

import-projects#

Import existing projects into your nx workspace

Executors#

build#

build executor

serve#

serve executor

test#

test executor

publish#

publish executor

format#

Formats and lints a project using the dotnet-format tool