@gaonjs/cli 0.57.1 → 0.57.3
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.
package/dist/commands/build.js
CHANGED
|
@@ -6,10 +6,15 @@
|
|
|
6
6
|
// gaon g app 으로 늘린 앱이 별도 손배선 없이 빌드 파이프라인에 자동 편입되게 한다.
|
|
7
7
|
import { regenerateProjectGaon } from './gen.js';
|
|
8
8
|
import { buildAllApps, listFrontendApps } from '../dev/build.js';
|
|
9
|
+
import { defaultNodeEnv } from '../nodeEnv.js';
|
|
9
10
|
/** `gaon build` 진입점. .gaon 재생성 + 전 앱 vite build. */
|
|
10
11
|
export async function runBuildCommand(opts = {}) {
|
|
11
12
|
const cwd = opts.cwd ?? process.cwd();
|
|
12
13
|
const json = opts.json ?? false;
|
|
14
|
+
// 결정 437(결정 430 확장): build 는 프로덕션 산출 명령이다 — serve 와 같이 NODE_ENV=production
|
|
15
|
+
// 을 기본으로 정한다(명시값은 존중 · 빈 값만 채움). 그래야 buildApp 의 mode 파생(NODE_ENV 기준)과
|
|
16
|
+
// vite 의 PROD(NODE_ENV==='production')가 함께 production 이 돼 번들의 MODE·PROD·DEV 가 일관된다.
|
|
17
|
+
defaultNodeEnv('production');
|
|
13
18
|
const log = (line) => {
|
|
14
19
|
if (!json)
|
|
15
20
|
process.stdout.write(line + '\n');
|
package/dist/dev/build.js
CHANGED
|
@@ -49,10 +49,20 @@ export async function buildApp(cwd, app, opts = {}) {
|
|
|
49
49
|
const root = resolve(cwd);
|
|
50
50
|
const appRoot = join(root, 'apps', app);
|
|
51
51
|
const vite = await loadVite();
|
|
52
|
+
// 결정 437: vite build 의 mode 를 NODE_ENV 에 정렬한다. 종전엔 mode 를 안 넘겨
|
|
53
|
+
// vite.build 기본값 'production' 이 그대로 박혔는데, gaon dev(NODE_ENV=development ·
|
|
54
|
+
// 결정 430)에서도 mode='production' 이라 개발 세션 번들이 import.meta.env.MODE='production'
|
|
55
|
+
// 을 보고했다(PROD 은 NODE_ENV 파생이라 false → mode='production'·prod=false 어긋남).
|
|
56
|
+
// NODE_ENV 는 명령이 정하므로(dev→development · build/serve→production · 결정 430) 그것을
|
|
57
|
+
// 단일 원천으로 삼아 mode 를 파생한다. 'production' 일 때만 production, 그 외(development·
|
|
58
|
+
// test·미설정)는 development — 이러면 vite 의 PROD(=NODE_ENV==='production')와 MODE 가 항상
|
|
59
|
+
// 함께 production 이거나 함께 아니어서 PROD===(MODE==='production') 불변식이 성립한다.
|
|
60
|
+
const mode = process.env.NODE_ENV === 'production' ? 'production' : 'development';
|
|
52
61
|
const result = await vite.build({
|
|
53
62
|
configFile: findViteConfig(root, appRoot),
|
|
54
63
|
root: appRoot,
|
|
55
64
|
base: appBase(app),
|
|
65
|
+
mode,
|
|
56
66
|
// onLog 있으면 vite 출력을 그 훅으로 라우팅(customLogger 가 stdout 대신 훅으로).
|
|
57
67
|
// 없으면(예: `gaon build --json`) 완전히 침묵 — vite 진행 로그가 stdout 의 JSON 을
|
|
58
68
|
// 오염시키면 안 된다(클린룸이 마지막 줄을 JSON 으로 파싱 · 결정 146 실측).
|
|
@@ -527,12 +527,15 @@ SQL 전용 · `collection()` 은 문서형** — 한 동사가 두 세계를 처
|
|
|
527
527
|
**추가로 설치할 것은 `mongoose` 하나뿐이다.** `@gaonjs/adapter-mongo` 는 파사드
|
|
528
528
|
`gaonjs` 의 정규 의존이라 이미 설치돼 있고(그래서 `gaonjs/data` 가 `collection`·
|
|
529
529
|
`mongoSchema` 를 재수출한다), 실제 드라이버인 `mongoose` 만 **optional peer** 라
|
|
530
|
-
SQL 전용 프로젝트는 받지 않는다 — 문서형을 쓰는 프로젝트만 명시 설치한다:
|
|
530
|
+
SQL 전용 프로젝트는 받지 않는다 — 문서형을 쓰는 프로젝트만 **최신 mongoose** 를 명시 설치한다:
|
|
531
531
|
|
|
532
532
|
```bash
|
|
533
533
|
npm i mongoose
|
|
534
534
|
```
|
|
535
535
|
|
|
536
|
+
> 어댑터는 mongoose **8·9 두 메이저**를 지원한다(peer `^8.0.0 || ^9.0.0` · 결정 438).
|
|
537
|
+
> 특정 하위 버전에 고정하지 말고 최신을 설치하면 된다 — 라이브러리는 계속 올라간다.
|
|
538
|
+
|
|
536
539
|
> `@gaonjs/adapter-mongo` 를 앱 의존으로 **따로 적지 말 것** — 파사드가 exact-pin 으로
|
|
537
540
|
> 끌고 오는 버전과 앱이 적은 range 가 갈리면 설치 트리에 어댑터가 둘로 갈라져
|
|
538
541
|
> (레지스트리 split) 커넥션 레지스트리가 서로 안 보인다. 설치 명령은 프로젝트의
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gaonjs/cli",
|
|
3
|
-
"version": "0.57.
|
|
3
|
+
"version": "0.57.3",
|
|
4
4
|
"description": "Gaon CLI — 스캐폴딩·제너레이터·마이그레이션·dev/serve/work/hub·doctor·check (bin: gaon)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -33,12 +33,12 @@
|
|
|
33
33
|
"typescript": "^5.9.0",
|
|
34
34
|
"vite": "^7.0.0",
|
|
35
35
|
"@gaonjs/async": "0.18.2",
|
|
36
|
-
"@gaonjs/
|
|
36
|
+
"@gaonjs/data": "0.25.3",
|
|
37
37
|
"@gaonjs/core": "0.3.0",
|
|
38
|
+
"@gaonjs/config": "0.25.2",
|
|
38
39
|
"@gaonjs/i18n": "0.3.1",
|
|
39
40
|
"@gaonjs/mail": "0.5.1",
|
|
40
|
-
"@gaonjs/web": "0.30.1"
|
|
41
|
-
"@gaonjs/data": "0.25.3"
|
|
41
|
+
"@gaonjs/web": "0.30.1"
|
|
42
42
|
},
|
|
43
43
|
"scripts": {
|
|
44
44
|
"build": "node ../../node_modules/typescript/bin/tsc -p tsconfig.json && node -e \"const fs=require('fs');fs.cpSync('src/templates','dist/templates',{recursive:true,filter:(s)=>!s.endsWith('.ts')});fs.rmSync('dist/templates/index.ts',{force:true})\""
|