In order to run own copy of the project one must fulfill the following requirements.
- Yarn is a preferred package manager for dependencies installation in the project root.
- npm is a preferred package manager for dependencies installation in the
functions
folder if any.
The project has lots of package scripts, check it in the package.json
located in the project root, or use the following command (see terminal output for usage tips)
yarn workspace:help
Using commitizen cli is mandatory, reference.
Provided all dependencies are installed, and this requirements are fulfilled cz-cli#conventional-commit-messages-as-a-global-utility the following command must be used when doing a commit
git cz
yarn install
yarn workspace:update:check
yarn workspace:update:migrate
ng build
ng build --prod
cat >tools/shell/vars.sh <<EOF
export JAVA_HOME=[PATH_TO_JAVA]
export ANDROID_HOME=[PATH_TO_ANDROID_SDK]
export ANDROID_BUILD_TOOLS=[PATH_TO_ANDROID_BUILD_TOOLS]
ANDROID_KEYSTORE=[PATH_TO_KEYSTORE]
ANDROID_KEYSTORE_ALIAS=[KEY_ALIAS]
ANDROID_KEYSTORE_PASSWORD=[KEYSTORE_PASSWORD]
EOF
./tools/shell/build-android
adb install -r android/build/release-signed.apk
First of all init submodules if you haven't yet
git submodule update --init --recursive
TODO: update instruction on working with submodules
make -C tools/audio
yarn test
yarn test:coverage
yarn e2e
yarn start
This will check ts sources, html templates, and scss stylesheets.
yarn lint
yarn lint:fix
yarn nx:lint
yarn nx:lint:fix
yarn prettier:all:html
yarn prettier:all:html:fix
yarn stylelint:all
yarn stylelint:all:fix
Webpack bundle analyzer is used for application bundles analysis.
yarn analyze:webaudio-spectrum-analyser
This project was generated using Nx.
🔎 Nx is a set of Angular CLI power-ups for modern development.
Nx supports many plugins which add capabilities for developing different types of applications and different tools.
These capabilities include generating applications, libraries, .etc as well as the devtools to test, and build projects as well.
Below are some plugins which you can add to your workspace:
Application type | Command |
---|---|
Angular | ng add @nrwl/angular |
React | ng add @nrwl/react |
Web (no framework frontends) | ng add @nrwl/web |
Nest | ng add @nrwl/nest |
Express | ng add @nrwl/express |
Node | ng add @nrwl/node |
Storybook | ng add @nrwl/storybook |
To generate an application run:
ng g @nrwl/angular:app my-app
You can use any of the plugins above to generate applications as well.
When using Nx, you can create multiple applications and libraries in the same workspace.
To generate a library run:
ng g @nrwl/angular:lib my-lib
You can also use any of the plugins above to generate libraries as well.
Libraries are sharable across libraries and applications.
It can be imported from @nx-ng-starter/mylib
.
To start a dev server run:
ng serve my-app
Navigate to http://localhost:4200/.
The app will automatically reload if you change any of the source files.
To generate a new component run:
ng g component my-component --project=my-app
To build the project run:
ng build my-app
The build artifacts will be stored in the dist/
directory.
Use the --prod
flag for a production build.
Unit testing with Jest
To execute the unit tests run:
ng test my-app
To execute the unit tests affected by a change run:
npm run affected:test
End-to-end testing with Cypress
To execute the end-to-end tests run:
ng e2e my-app
To execute the end-to-end tests affected by a change run:
npm run affected:e2e
To see a diagram of the dependencies of your projects run:
npm run dep-graph
npx nx g @nrwl/angular:storybook-configuration project-name
Visit the Nx Documentation to learn more.