$ npx create-nx-workspace@latest
NX Let's create a new workspace [https://nx.dev/getting-started/intro]
✔ Where would you like to create your workspace? · debug-nx-incremental-build-typechecking
✔ Which stack do you want to use? · node
✔ What framework should be used? · none
✔ Integrated monorepo, or standalone project? · integrated
✔ Application name · default-app
✔ Would you like to generate a Dockerfile? [https://docs.docker.com/] · No
✔ Which CI provider would you like to use? · skip
✔ Would you like remote caching to make your build faster? · skip
$ npx nx g @nx/js:library util-lib
NX Generating @nx/js:library
✔ Which bundler would you like to use to build the library? Choose 'none' to skip build setup. · tsc
✔ Which linter would you like to use? · eslint
✔ Which unit test runner would you like to use? · none
Update util-lib/src/lib/util-lib.ts:
export function utilLib(arg1): string {
return arg1 ? arg1 : 'util-lib';
}Disable noImplicitAny in packages/util-lib/tsconfig.json:
"noImplicitAny": false$ npx nx g @nx/node:application webpack-app --bundler webpack
NX Generating @nx/node:application
✔ Which linter would you like to use? · eslint
✔ Which unit test runner would you like to use? · none
✔ Which end-to-end test runner would you like to use? · none
✔ Which framework do you want to use? · none
Add ajv@8 dependency to package.json and run npm install:
"ajv": "^8.12.0",Update webpack-app/src/main.ts:
import { utilLib } from '@debug-nx-incremental-build-typechecking/util-lib';
console.log('Hello World');
console.log(utilLib('Hello Lib'));Update webpack-app/tsconfig.json:
"strict": true✨ Your new, shiny Nx workspace is ready ✨.
Learn more about this workspace setup and its capabilities or run npx nx graph to visually explore what was created. Now, let's get you up to speed!
To run the dev server for your app, use:
npx nx serve default-appTo create a production bundle:
npx nx build default-appTo see all available targets to run for a project, run:
npx nx show project default-appThese targets are either inferred automatically or defined in the project.json or package.json files.
More about running tasks in the docs »
While you could add new projects to your workspace manually, you might want to leverage Nx plugins and their code generation feature.
Use the plugin's generator to create new projects.
To generate a new application, use:
npx nx g @nx/node:app demoTo generate a new library, use:
npx nx g @nx/node:lib mylibYou can use npx nx list to get a list of installed plugins. Then, run npx nx list <plugin-name> to learn about more specific capabilities of a particular plugin. Alternatively, install Nx Console to browse plugins and generators in your IDE.
Learn more about Nx plugins » | Browse the plugin registry »
To connect to Nx Cloud, run the following command:
npx nx connectConnecting to Nx Cloud ensures a fast and scalable CI pipeline. It includes features such as:
- Remote caching
- Task distribution across multiple machines
- Automated e2e test splitting
- Task flakiness detection and rerunning
Use the following command to configure a CI workflow for your workspace:
npx nx g ci-workflowNx Console is an editor extension that enriches your developer experience. It lets you run tasks, generate code, and improves code autocompletion in your IDE. It is available for VSCode and IntelliJ.
Learn more:
- Learn more about this workspace setup
- Learn about Nx on CI
- Releasing Packages with Nx release
- What are Nx plugins?
And join the Nx community: