remix-demo
react router (remix) demo
git clone https://9o.is/git/remix-demo.git
package.json
(3873B)
1 {
2 "name": "remix-demo",
3 "private": true,
4 "sideEffects": false,
5 "scripts": {
6 "build": "run-s build:*",
7 "build:css": "npm run generate:css -- --minify",
8 "build:remix": "remix build",
9 "build:server": "esbuild --platform=node --format=cjs ./server.ts --outdir=build --bundle",
10 "dev": "run-p dev:*",
11 "dev:build": "cross-env NODE_ENV=development npm run build:server -- --watch",
12 "dev:css": "cross-env NODE_ENV=development npm run generate:css -- --watch",
13 "dev:remix": "cross-env NODE_ENV=development remix watch",
14 "dev:server": "cross-env NODE_ENV=development node --inspect --require ./node_modules/dotenv/config --require ./mocks ./build/server.js",
15 "docker": "podman-compose up -d",
16 "format": "prettier --write .",
17 "generate:css": "tailwindcss -o ./app/styles/tailwind.css",
18 "lint": "eslint --cache --cache-location ./node_modules/.cache/eslint .",
19 "setup": "prisma generate && prisma migrate deploy && prisma db seed",
20 "start": "cross-env NODE_ENV=production node ./build/server.js",
21 "start:mocks": "cross-env NODE_ENV=production node --require ./mocks --require dotenv/config ./build/server.js",
22 "test": "vitest",
23 "test:e2e:dev": "start-server-and-test dev http://localhost:3000 \"npx cypress open\"",
24 "pretest:e2e:run": "npm run build",
25 "test:e2e:run": "cross-env PORT=8811 start-server-and-test start:mocks http://localhost:8811 \"npx cypress run\"",
26 "typecheck": "tsc -b && tsc -b cypress",
27 "validate": "run-p \"test -- --run\" lint typecheck test:e2e:run"
28 },
29 "prettier": {},
30 "eslintIgnore": [
31 "/node_modules",
32 "/build",
33 "/public/build",
34 "/postgres-data"
35 ],
36 "dependencies": {
37 "@prisma/client": "^6.2.0-dev.13",
38 "@reach/combobox": "^0.17.0",
39 "@remix-run/express": "^1.7.2",
40 "@remix-run/node": "^1.7.2",
41 "@remix-run/react": "^1.7.2",
42 "@remix-run/server-runtime": "^1.7.2",
43 "@remix-validated-form/with-zod": "^2.0.2",
44 "@types/throttle-debounce": "^5.0.0",
45 "compression": "^1.7.4",
46 "cross-env": "^7.0.3",
47 "express": "^4.18.1",
48 "isbot": "^3.5.3",
49 "morgan": "^1.10.0",
50 "react": "^18.2.0",
51 "react-dom": "^18.2.0",
52 "remix-utils": "^3.3.0",
53 "remix-validated-form": "^4.5.6",
54 "throttle-debounce": "^5.0.0",
55 "tiny-invariant": "^1.2.0",
56 "zod": "^3.19.1"
57 },
58 "devDependencies": {
59 "@faker-js/faker": "^7.5.0",
60 "@remix-run/dev": "^1.7.2",
61 "@remix-run/eslint-config": "^1.7.2",
62 "@testing-library/cypress": "^8.0.3",
63 "@testing-library/dom": "^8.18.1",
64 "@testing-library/jest-dom": "^5.16.5",
65 "@testing-library/react": "^13.4.0",
66 "@testing-library/user-event": "^14.4.3",
67 "@types/bcryptjs": "^2.4.2",
68 "@types/compression": "^1.7.2",
69 "@types/eslint": "^8.4.6",
70 "@types/express": "^4.17.14",
71 "@types/morgan": "^1.9.3",
72 "@types/node": "^18.7.18",
73 "@types/react": "^18.0.20",
74 "@types/react-dom": "^18.0.6",
75 "@vitejs/plugin-react": "^2.1.0",
76 "@vitest/coverage-c8": "^0.23.4",
77 "autoprefixer": "^10.4.11",
78 "c8": "^7.12.0",
79 "cookie": "^0.5.0",
80 "cypress": "^10.8.0",
81 "dotenv": "^16.0.2",
82 "esbuild": "^0.15.8",
83 "eslint": "^8.23.1",
84 "eslint-config-prettier": "^8.5.0",
85 "eslint-plugin-cypress": "^2.12.1",
86 "happy-dom": "^6.0.4",
87 "msw": "^0.47.3",
88 "npm-run-all": "^4.1.5",
89 "postcss": "^8.4.16",
90 "prettier": "^2.7.1",
91 "prettier-plugin-tailwindcss": "^0.1.13",
92 "prisma": "^6.2.0-dev.13",
93 "start-server-and-test": "^1.14.0",
94 "tailwindcss": "^3.1.8",
95 "ts-node": "^10.9.1",
96 "tsconfig-paths": "^4.1.0",
97 "typescript": "^4.8.3",
98 "vite": "^3.1.3",
99 "vite-tsconfig-paths": "^3.5.0",
100 "vitest": "^0.23.4"
101 },
102 "engines": {
103 "node": ">=14"
104 },
105 "prisma": {
106 "seed": "ts-node --require tsconfig-paths/register prisma/seed.ts"
107 }
108 }