Add CLAUDE.md; point README at the build docs in raven
This commit is contained in:
61
CLAUDE.md
Normal file
61
CLAUDE.md
Normal file
@@ -0,0 +1,61 @@
|
||||
# AyaNova v8 front end — instructions for Claude Code
|
||||
|
||||
Shared AyaNova context and working rules, from the server repo (the master):
|
||||
@../raven/CLAUDE.md
|
||||
|
||||
Everything below is specific to this repo.
|
||||
|
||||
## What this is
|
||||
|
||||
The AyaNova v8 web client, in `ayanova/`. Vue 2.6, Vuetify 2.6, Vuex, Vue Router, plain
|
||||
JavaScript (no TypeScript), Vue CLI 4 / webpack 4. Stack details:
|
||||
`../raven/devdocs/modernization/CODEBASE-REFERENCE.md`.
|
||||
|
||||
## During the .NET 10 port
|
||||
|
||||
The port is back-end only. **No changes in this repo** unless John asks, apart from a
|
||||
rebuild if the port needs one. Whether the client gets rebuilt in this pass is an open
|
||||
question in `../raven/devdocs/modernization/NET10-PORT.md`.
|
||||
|
||||
If a port item touches the client (for example removing a package from both repos), it
|
||||
goes on a `net10-port` branch here too, with its own commit.
|
||||
|
||||
## Constraints
|
||||
|
||||
- **Node.js 12.22.9 exactly.** `fibers` breaks on anything newer. Check with `node -v` before building.
|
||||
- **No dependency changes**: no `npm install <package>`, no `npm update`, no version edits in `package.json`. Front-end upgrades are roadmap step F, not current work.
|
||||
- Install with `npm ci` (exact versions from `package-lock.json`), never `npm install`.
|
||||
- Vue 2 / Vuetify 2 are end of life. Do not upgrade them, and do not write Vue 3 style code.
|
||||
- Add `data-testid` attributes to elements that Cypress tests select.
|
||||
|
||||
## Commands
|
||||
|
||||
```powershell
|
||||
cd ayanova
|
||||
npm ci # first time, or after package-lock.json changes
|
||||
npm run serve # dev server with hot reload
|
||||
npm run build # production build into dist\
|
||||
npm run lint
|
||||
```
|
||||
|
||||
## How the build reaches the server
|
||||
|
||||
`npm run build` writes to `ayanova\dist\`. `raven\build-release.bat` (or `buildrelease.bat`
|
||||
here) copies it into `raven\server\AyaNova\wwwroot\`. The .NET build does not produce
|
||||
`wwwroot`: whatever is there when the server is published is what ships.
|
||||
|
||||
Webpack content-hash file names (`app.<hash>.js` …) change on every build even when the
|
||||
contents do not. Compare file contents, not names.
|
||||
|
||||
Warnings on every build that are harmless: Browserslist "caniuse-lite is outdated"; Dart
|
||||
Sass division deprecation (from Vuetify); asset size (Monaco's workers).
|
||||
|
||||
## Code layout
|
||||
|
||||
`src/api/` API utilities, auth and error handling; `src/components/` about 80 components;
|
||||
`src/views/` about 100 pages; `src/plugins/` Vuetify setup; `router.js`, `store.js`,
|
||||
`main.js`, `App.vue`.
|
||||
|
||||
View prefixes: `acc-` accounting, `adm-` administration, `cust-` customers, `home-`
|
||||
dashboard, `inv-` inventory, `ops-` server operations, `svc-` service (work orders, quotes,
|
||||
PMs).
|
||||
Reference in New Issue
Block a user