@gadmin2n/schematics 0.0.59 → 0.0.61

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,14 +1,49 @@
1
1
  # syntax=docker/dockerfile:1
2
- FROM node:16.17.1
2
+
3
+ # ─── Stage 1: Builder ────────────────────────────────────────
4
+ FROM node:20-alpine AS builder
3
5
 
4
6
  WORKDIR /app
5
7
 
6
- STOPSIGNAL SIGQUIT
8
+ # 禁止 husky 在无 .git 环境下报错
9
+ ENV HUSKY=0
10
+
11
+ # 安装 gadmin2 CLI(单独一层,利用缓存)
12
+ RUN yarn global add @gadmin2n/cli@0.0.79
7
13
 
14
+ # 先复制 package.json,利用 Docker 层缓存:依赖未变则跳过 yarn install
15
+ COPY server/package.json server/yarn.lock* ./server/
16
+ COPY web/package.json web/yarn.lock* ./web/
17
+
18
+ RUN cd server && yarn install --frozen-lockfile && \
19
+ cd ../web && yarn install --frozen-lockfile
20
+
21
+ # 再复制其余源码
8
22
  COPY . .
9
23
 
10
- RUN chmod +x ./build.sh && ./build.sh
24
+ # 生成代码、构建 web、构建 server
25
+ RUN gadmin2 g prisma && \
26
+ cd web && yarn build && yarn cache clean --all && \
27
+ cd ../server && yarn build
28
+
29
+ # 切换为仅生产依赖,减小体积
30
+ RUN cd server && NODE_ENV=production yarn install --production --frozen-lockfile && \
31
+ yarn cache clean --all
32
+
33
+ # 将 web 构建产物放入 server 静态目录
34
+ RUN cp -R web/build server/dist/www
35
+
36
+
37
+ # ─── Stage 2: Runtime ────────────────────────────────────────
38
+ FROM node:20-alpine AS runtime
11
39
 
12
40
  WORKDIR /app/server
13
41
 
14
- CMD [ "yarn", "start:prod" ]
42
+ STOPSIGNAL SIGQUIT
43
+
44
+ COPY --from=builder /app/server/dist ./dist
45
+ COPY --from=builder /app/server/node_modules ./node_modules
46
+ COPY --from=builder /app/server/package.json ./package.json
47
+ COPY --from=builder /app/server/prisma ./prisma
48
+
49
+ CMD ["yarn", "start:prod"]
@@ -9,6 +9,7 @@
9
9
  "prebuild": "rimraf dist",
10
10
  "build": "gadmin2 build",
11
11
  "format": "prettier --write \"../config/*.ts\" \"src/**/*.ts\" \"src/**/*.tsx\" \"test/**/*.ts\"",
12
+ "prepare": "cd .. && husky install",
12
13
  "start": "gadmin2 start",
13
14
  "start:dev": "gadmin2 start --watch",
14
15
  "start:debug": "gadmin2 start --debug --watch",
@@ -19,17 +20,19 @@
19
20
  "test:cov": "jest --coverage",
20
21
  "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
21
22
  "test:e2e": "jest --config ./test/jest-e2e.json",
22
- "migrate:dev": "prisma migrate dev && npm run format -- --loglevel error",
23
- "migrate:dev:create": "prisma migrate dev --create-only",
24
- "migrate:deploy": "prisma migrate deploy",
25
- "generate": "npx prisma generate && npm run format -- --loglevel error",
26
- "generate:dev": "npm run push:db && npx prisma generate && npm run format -- --loglevel error",
27
- "push:db": "prisma db push",
28
- "seed": "ts-node seed/index.ts",
29
- "prisma:studio": "prisma studio"
23
+ "migrate:dev": "dotenv -e .env.local -e .env -- prisma migrate dev",
24
+ "migrate:dev:create": "dotenv -e .env.local -e .env -- prisma migrate dev --create-only",
25
+ "migrate:deploy": "dotenv -e .env.local -e .env -- prisma migrate deploy",
26
+ "generate": "dotenv -e .env.local -e .env -- npx prisma generate",
27
+ "generate:dev": "npm run push:db && dotenv -e .env.local -e .env -- npx prisma generate",
28
+ "generate:web": "dotenv -e .env.local -e .env -- npx prisma generate --generator react",
29
+ "generate:server": "dotenv -e .env.local -e .env -- npx prisma generate --generator client --generator nestjs",
30
+ "push:db": "dotenv -e .env.local -e .env -- prisma db push",
31
+ "seed": "dotenv -e .env.local -e .env -- ts-node seed/index.ts",
32
+ "prisma:studio": "dotenv -e .env.local -e .env -- prisma studio"
30
33
  },
31
34
  "dependencies": {
32
- "@gadmin2n/nest-common": "^0.0.27",
35
+ "@gadmin2n/nest-common": "^0.0.29",
33
36
  "@nestjs/common": "^8.0.0",
34
37
  "@nestjs/config": "^2.0.0",
35
38
  "@nestjs/core": "^8.0.0",
@@ -57,8 +60,8 @@
57
60
  "winston": "^3.7.2"
58
61
  },
59
62
  "devDependencies": {
60
- "@gadmin2n/prisma-nest-generator": "^0.0.24",
61
- "@gadmin2n/prisma-react-generator": "^0.0.40",
63
+ "@gadmin2n/prisma-nest-generator": "^0.0.26",
64
+ "@gadmin2n/prisma-react-generator": "^0.0.42",
62
65
  "@nestjs/testing": "^8.0.0",
63
66
  "@types/cookie-parser": "^1.4.3",
64
67
  "@types/express": "^4.17.13",
@@ -68,10 +71,13 @@
68
71
  "@types/supertest": "^2.0.11",
69
72
  "@typescript-eslint/eslint-plugin": "^5.0.0",
70
73
  "@typescript-eslint/parser": "^5.0.0",
74
+ "dotenv-cli": "^7.4.4",
71
75
  "eslint": "^8.0.1",
72
76
  "eslint-config-prettier": "^8.3.0",
73
77
  "eslint-plugin-prettier": "^4.0.0",
74
78
  "jest": "^27.2.5",
79
+ "husky": "^8.0.0",
80
+ "lint-staged": "^13.0.0",
75
81
  "prettier": "^2.3.2",
76
82
  "prettier-plugin-organize-imports": "^3.0.3",
77
83
  "prisma-dbml-generator": "^0.9.1",
@@ -102,5 +108,8 @@
102
108
  },
103
109
  "prisma": {
104
110
  "seed": "echo 'npm run seed'"
111
+ },
112
+ "lint-staged": {
113
+ "**/*.{ts,tsx}": "prettier --write"
105
114
  }
106
115
  }
@@ -25,6 +25,7 @@ generator nestjs {
25
25
 
26
26
  generator react {
27
27
  provider = "prisma-react-generator"
28
+ pagesDir = "../../web/src/pages"
28
29
  }
29
30
 
30
31
  generator dbml {
@@ -0,0 +1,4 @@
1
+ {
2
+ "singleQuote": true,
3
+ "trailingComma": "all"
4
+ }
@@ -6,7 +6,7 @@
6
6
  "private": true,
7
7
  "dependencies": {
8
8
  "@ant-design/icons": "^5.0.1",
9
- "@gadmin2n/react-common": "^0.0.49",
9
+ "@gadmin2n/react-common": "^0.0.51",
10
10
  "@refinedev/antd": "5.22.0",
11
11
  "@refinedev/cli": "2.5.5",
12
12
  "@refinedev/core": "4.20.0",
@@ -48,6 +48,9 @@
48
48
  "@types/react": "^18.0.15",
49
49
  "@types/react-dom": "^18.0.6",
50
50
  "craco-less": "^2.0.0",
51
+ "husky": "^8.0.0",
52
+ "lint-staged": "^13.0.0",
53
+ "prettier": "^3.0.0",
51
54
  "process": "^0.11.10",
52
55
  "react-scripts": "^5.0.0",
53
56
  "typescript": "^5.0.0",
@@ -56,9 +59,11 @@
56
59
  "scripts": {
57
60
  "dev": "refine start",
58
61
  "build": "refine build",
62
+ "format": "prettier --write \"src/**/*.{ts,tsx}\"",
59
63
  "test": "react-scripts test",
60
64
  "eject": "react-scripts eject",
61
- "refine": "refine"
65
+ "refine": "refine",
66
+ "prepare": "cd .. && husky install"
62
67
  },
63
68
  "eslintConfig": {
64
69
  "extends": [
@@ -66,6 +71,9 @@
66
71
  "react-app/jest"
67
72
  ]
68
73
  },
74
+ "lint-staged": {
75
+ "**/*.{ts,tsx,js,jsx}": "prettier --write"
76
+ },
69
77
  "browserslist": {
70
78
  "production": [
71
79
  ">0.2%",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gadmin2n/schematics",
3
- "version": "0.0.59",
3
+ "version": "0.0.61",
4
4
  "description": "Gadmin - modern, fast, powerful node.js web framework (@schematics)",
5
5
  "main": "dist/index.js",
6
6
  "files": [
@@ -1,18 +0,0 @@
1
- #!/bin/sh
2
-
3
- yarn global add @gadmin2n/cli@latest
4
-
5
- cd server && yarn && cd ../web && yarn && cd ..
6
-
7
- gadmin2 g prisma
8
-
9
- cd web && yarn build && yarn cache clean --all && cd ..
10
-
11
- # 同时删除devDependencies
12
- cd server && yarn build && NODE_ENV=production yarn && yarn cache clean --all && cd ..
13
-
14
- cp -R web/build server/dist/www
15
-
16
- yarn global remove @gadmin2n/cli
17
-
18
- rm -rf web/