npm i -g nx
npm i -g @nrwl/cli
pnpx create-nx-workspace@latest
- choose standalone angular app
- application name, app
- standalone components, yes
- routing, no
- stylesheet format, css
- caching, no
Cypress additional set up
pnpm add -D @testing-library/cypress
- update -> "types": ["cypress", "node", "@testing-library/cypress"], in tsconfig.json
- add -> import '@testing-library/cypress/add-commands'; in cypress/support/commands.ts
npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init
- Add the paths to all of your template files in your tailwind.config.js file.
/** @type {import('tailwindcss').Config} */
module.exports = {
content: ['./src/**/*.{html,ts}'],
theme: {
extend: {},
},
plugins: [],
};
- Add the @tailwind directives for each of Tailwind’s layers to your ./src/styles.css file.
@tailwind base;
@tailwind components;
@tailwind utilities;
- run the application by running npm run start
- generate a module name shared.module.ts
- create a directory name pages
- generate a standalone home component -> path is src/app/pages
- generate a standalone posts component -> path is src/app/pages
- generate a standalone todos component -> path is src/app/pages
- create app/app.routes.ts
- update main.ts
- add router-outlet to app.component.ts
- run the application and check all pages
- create configs/axios.config.ts
- generate a services/http.service.ts -> path is src/app/services
- create models.ts
- create store/state.ts
- implement todos in store/state.ts
- create store/actions.ts
- implement todos in store/actions.ts
- create store/index.ts for barrel imports
- update todos.component
- run the application
- implement posts in store/state.ts
- implement posts in store/actions.ts
- update posts.component.ts
- update home.component.ts
- run the application
- create store/getters.ts
- implement computed for todos and posts in store/getters.ts
- update store/index.ts
- generate components/footer.component.ts -> path is src/app/shared/components
- generate components/menu.component.ts -> path is src/app/shared/components
- generate components/nav-bar.component.ts -> path is src/app/shared/components
- add footer and nav-bar to app.component.html
- update the menu, nav-bar, and footer
- run the application and check state gets lost
- generate utilities/local-storage.service.ts
- update store/actions.ts
- update store/state.ts
- update the main.ts with localstorage service
- run application and check localstorage in devtool
- write tests helpers/compute
- run jest tests
- write e2e tests
- update package.json with cypress
- run e2e tests