Important
v4.0.0-beta is now available! π
This version brings support for Nx 21+. We look forward to your feedback in #176.
- π Generate Go applications and libraries in seconds within your Nx workspace
- β‘ Zero-config setup β Automatic task inference for projects with
go.mod - π¨ Blazing-fast tasks β Optimized caching with smart inputs and outputs
- π€ Community friendly β Integration with recognized community projects such as Air
- ποΈ Reliable β Use official Go commands in the background
You need to have a stable version of Go installed on your machine. And.. you are ready!
npx create-nx-workspace go-workspace --preset=@nx-go/nx-gonx add @nx-go/nx-gonx migrate @nx-go/nx-go# Install it manually in your Nx workspace
npm install -D @nx-go/nx-go@beta
nx g @nx-go/nx-go:init
# Migrate if already using nx-go
nx migrate @nx-go/nx-go@betaThe plugin configures a multi-module Go workspace by default, to simplify project management and improve the quality of the Nx graph. If you don't want to take advantage of this feature, you can use generator convert-to-one-mod after the plugin installation. Generators will automatically adapt to your configuration.
nx g @nx-go/nx-go:convert-to-one-modYou need to have a multi-module Go workspace to use inferred tasks.
Convert existing projects from executor-based to inferred task configuration:
nx g infer-targetsapplication: Generate a Go applicationlibrary: Generate a Go library
build: Build a Go projectgenerate: Generate code using Golint: Format and lint a Go projectserve: Run a Go applicationserve-air: Run a Go application with Air live reloadtest: Run tests of a Go projecttidy: Ensures go.mod file matches a project source code
Tip
You can use nx list @nx-go/nx-go to see list capabilities.
Want to try out these capabilities quickly? Visit our playground!
Need more customization? A plugin configuration is also available.
| nx-go version | Nx version |
|---|---|
| 4.x | 20.x to 22.x |
| 3.x | 17.x to 20.x |
This plugin is only tested on stable versions of Go, older versions does not receive support. However, you can expect a fair degree of compatibility. Please note that multi-module Go workspaces require Go 1.18 or later.
Bram Borggreve Creator |
Maxime Malgorn Maintainer |
Licensed under MIT