In NX a command represents something like nx run header:build, whereas build is the target, header is the project and header:build is the task.
yarn nx, npx nx or simply nx.Running a single task on a single project
nx mytarget myproject
Running multiple tasks on a single project
Running a single task on all projects
nx run-many --target=mytarget
Running a single task on all projects affected in a PR:
nx affected --target=mytarget
There are some predefined tasks:
yarn nx run myapp:serve yarn nx run myapp:lint yarn nx run myapp:test
Tasks can be defined as npm scripts in a project’s package.json file or as targets in a project.json file, so have a look at /apps/myapp/project.json to see all available commands or modify them there. If you installed storybook then that would be the place to change the storybook.options.port.
A target in a project.json might look like this:
{
"targets": {
"build": {
"executor": "nx:run-commands",
"options": {
"command": "webpack -c webpack.conf.js"
}
},
"test": {
"executor": "@nrwl/jest:jest",
"options": {
"codeCoverage": true
}
}
}
}
Running commands parallelly
We can call the serve command (aka target) for more than just one app/project and have them run parallelly:
yarn nx run-many --target=serve --projects=my-api,my-app --parallel=true
Creating custom commands
You can create a custom commands, for example one that cares of serving the app and api together. Edit a project.json of one of your libs or apps:
"targets": {
//...
"serveCraAndStorybook" : {
"builder" : "@nrwl/workspace:run-commands",
"options": {
"commands" : [
{
"command": "nx run ui:storybook"
},
{
"command": "nx run pr-cra:serve"
}
]
}
},
//...
}