@@ -18,7 +18,7 @@ setup: ## Full development setup
1818 fi
1919 @mkdir -p tmp/rack-cache-body tmp/rack-cache-meta
2020 @echo " Setting up frontend..."
21- @cd frontend && npm install
21+ @cd frontend && CI=1 pnpm install --frozen-lockfile
2222 @echo " Setup complete!"
2323
2424dev : # # Start development server with live reload
@@ -29,26 +29,26 @@ dev-ruby: ## Start Ruby server only
2929 @bin/dev-ruby
3030
3131dev-frontend : # # Start frontend dev server only
32- @cd frontend && npm run dev
32+ @cd frontend && pnpm run dev
3333
3434test : # # Run all tests (Ruby + Frontend)
3535 bundle exec rspec
36- @cd frontend && npm run test:ci
36+ @cd frontend && pnpm run test:ci
3737
3838test-ruby : # # Run Ruby tests only
3939 bundle exec rspec
4040
4141test-frontend : # # Run frontend tests only
42- @cd frontend && npm run test:ci
42+ @cd frontend && pnpm run test:ci
4343
4444test-frontend-unit : # # Run frontend unit tests only
45- @cd frontend && npm run test:unit
45+ @cd frontend && pnpm run test:unit
4646
4747test-frontend-contract : # # Run frontend contract tests only
48- @cd frontend && npm run test:contract
48+ @cd frontend && pnpm run test:contract
4949
5050test-frontend-e2e : # # Run frontend Playwright smoke tests
51- @cd frontend && npm run test:e2e
51+ @cd frontend && pnpm run test:e2e
5252
5353check-frontend : # # Run frontend typecheck, format, and test checks
5454 $(MAKE ) lint-js
@@ -69,13 +69,13 @@ lint-ruby: ## Run Ruby linter (RuboCop) - errors when issues found
6969
7070lint-js : # # Run JavaScript/Frontend linting (TypeScript + ESLint + Stylelint + Prettier) - errors when issues found
7171 @echo " Running TypeScript typecheck..."
72- @cd frontend && npm run typecheck
72+ @cd frontend && pnpm run typecheck
7373 @echo " Running ESLint..."
74- @cd frontend && npm run lint
74+ @cd frontend && pnpm run lint
7575 @echo " Running Stylelint..."
76- @cd frontend && ( pnpm dlx stylelint " **/* .css" || npx stylelint " **/*.css" )
76+ @cd frontend && pnpm exec stylelint " ../public/shared-ui .css" " **/*.css"
7777 @echo " Running Prettier format check..."
78- @cd frontend && npm run format:check
78+ @cd frontend && pnpm run format:check
7979 @echo " JavaScript linting complete!"
8080
8181lintfix : lintfix-ruby lintfix-js # # Auto-fix all linting issues (Ruby + Frontend)
@@ -88,9 +88,9 @@ lintfix-ruby: ## Auto-fix Ruby linting issues
8888
8989lintfix-js : # # Auto-fix JavaScript/Frontend linting issues
9090 @echo " Running ESLint auto-fix..."
91- @cd frontend && npm run lint:fix
91+ @cd frontend && pnpm run lint:fix
9292 @echo " Running Prettier formatting..."
93- @cd frontend && npm run format
93+ @cd frontend && pnpm run format
9494 @echo " JavaScript lintfix complete!"
9595
9696quick-check : # # Fast local checks (Ruby lint/docs + frontend format/typecheck)
@@ -116,10 +116,10 @@ openapi-verify: ## Regenerate OpenAPI and fail if public/openapi.yaml or fronten
116116 $(MAKE ) openapi-client-verify
117117
118118openapi-client : # # Generate frontend OpenAPI client/types from public/openapi.yaml
119- @cd frontend && npm run openapi:generate
119+ @cd frontend && pnpm run openapi:generate
120120
121121openapi-client-verify : # # Generate frontend OpenAPI client and fail if generated files are stale
122- @cd frontend && npm run openapi:verify
122+ @cd frontend && pnpm run openapi:verify
123123
124124openapi-lint : openapi-lint-redocly openapi-lint-spectral # # Lint public/openapi.yaml with Redocly and Spectral
125125
@@ -138,5 +138,5 @@ clean: ## Clean temporary files
138138
139139frontend-setup : # # Setup frontend dependencies
140140 @echo " Setting up frontend dependencies..."
141- @cd frontend && npm install
141+ @cd frontend && CI=1 pnpm install --frozen-lockfile
142142 @echo " Frontend setup complete!"
0 commit comments