Skip to main content

Getting Started

Prerequisites

Installation

NPM

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

PNPM

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

Yarn

yarn add --dev @nx-dotnet/core
npx 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

Generate a new C# project as an Nx library

application

Generate a new C# project as an Nx application

project-reference

Add a reference from one project to another

sync

Synchronizes NuGet references for the workspace

nuget-reference

Add a NuGet reference to a project

restore

Restores NuGet packages and .NET tools used by the workspace

test

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

add-swagger-target

Add a swagger target to a webapi based project to extract swagger.json into a newly generated library project

swagger-typescript

Generate a typescript library project based on an openapi/swagger specification file

move

Moves a .NET project (including updating references)

Executors

build

Invokes dotnet build to build a project with .NET Core CLI

serve

Invokes dotnet watch in combination with dotnet build to run a dev-server

test

Invokes dotnet test to execute unit tests via .NET Core CLI

publish

Invokes dotnet publish

format

Formats and lints a project using the dotnet-format tool

update-swagger

Generates a swagger document for an API project

openapi-codegen

Invokes nx g @nx-dotnet/core:swagger-typescript with the proper parameters to update a codegen based library