NX generators for Ronas IT projects.
- Create monorepo with Expo app using NX Expo preset or with Next.js app using NX Next preset:
# For Expo app:
npx create-nx-workspace@latest my-project --preset=expo --appName=my-app --e2eTestRunner=none --ci=skip
# For Next.js app:
npx create-nx-workspace@latest my-project --preset=next --appName=my-app --nextAppDir=true --nextSrcDir=false --style=scss --e2eTestRunner=none --ci=skip
- Install this package:
npm i @ronas-it/nx-generators --save-dev
- Run generators:
npx nx g repo-config
npx nx g code-checks
# For Expo app:
npx nx g expo-app
# For Next.js app:
npx nx g next-app
Or run all generators at once:
# For Expo app:
npx nx g repo-config && npx nx g code-checks && npx nx g expo-app
# For Next.js app:
npx nx g repo-config && npx nx g code-checks && npx nx g next-app
- Start the app:
npx nx start my-app
- Continue developing your app by generating libraries and components:
npx nx g react-lib mobile/account/features/profile-settings --withComponent
npx nx g react-component
Setups the monorepo structure for development.
Configures code checks and formatting with pre-commit hook.
Generates and configures an Expo React Native app.
-
name
(optional) - name of the app forapp.config.ts
(e.g:my-app
) -
directory
(optional) - name of the directory in theapps/
folder (e.g:mobile
)
npx nx g expo-app --name=my-app --directory=mobile
or
npx nx g expo-app my-app mobile
Generates and configures a Next.js app.
-
name
(optional) - name of the app (e.g:my-app
) -
directory
(optional) - name of the directory in theapps/
folder (e.g:web
)
npx nx g next-app --name=my-app --directory=web
or
npx nx g next-app my-app web
Generates a library according to NX notation.
-
app
(optional) - name of an app orshared
. -
scope
(optional) - name of a scope orshared
. This option is for a library, related to an app. -
type
(optional) - type of library. Possible values arefeatures
,data-access
,ui
andutils
. -
name
(optional) - name of a library. -
withComponent
(optional) - generate the library withlib/component.tsx
file. This option is forfeatures
orui
library. -
dryRun
(optional) - generate the library without creating files
npx nx g react-lib --app=mobile --scope=account --type=features --name=profile-settings --withComponent --dryRun
or
npx nx g react-lib --dryRun
Creates a React component in particular library.
-
name
(optional) - name of the component (e.g. AppButton) -
subcomponent
(optional) - generate a folder for components
npx nx g react-component --name=AppButton --subcomponent
or
npx nx g react-component AppButton --subcomponent
Creates an API with related entities in API library. It also updates redux store middlewares, reducers.
-
name
(optional) - name of the entity (e.g. User) -
baseEndpoint
(optional) - name of used endpoint in your API (e.g. /users)
npx nx g entity-api --name=User --baseEndpoint=users
Generates a form schema class and adds its usage to a component or a hook.
-
name
(optional) - name of the form (e.g:profile-settings
) -
placeOfUse
(optional) - name of the component or hook, where the form should be (e.g:ProfileSettings
oruseProfileSettings
)
npx nx g form --name=profile-settings --placeOfUse=ProfileSettings
or
npx nx g form profile-settings ProfileSettings
Each generator accepts the --help
argument to see generator instructions.
npx nx g react-lib --help