@simplysm/sd-cli 12.15.63 → 12.15.65
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.
|
@@ -84,27 +84,29 @@ export class SdCliProject {
|
|
|
84
84
|
}
|
|
85
85
|
static async publishAsync(opt) {
|
|
86
86
|
const logger = SdLogger.get(["simplysm", "sd-cli", "SdCliProject", "publishAsync"]);
|
|
87
|
-
logger.debug("
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
87
|
+
logger.debug("프로젝트 설정 가져오기...");
|
|
88
|
+
const projConf = await loadProjConfAsync(process.cwd(), false, opt);
|
|
89
|
+
if (Object.values(projConf.packages).some((item) => item?.publish === "npm")) {
|
|
90
|
+
logger.debug("npm/yarn 토큰 유효성 체크...");
|
|
91
|
+
try {
|
|
92
|
+
const npmWhoami = await SdProcess.spawnAsync("npm", ["whoami"]);
|
|
93
|
+
if (StringUtils.isNullOrEmpty(npmWhoami.trim())) {
|
|
94
|
+
throw new Error();
|
|
95
|
+
}
|
|
96
|
+
logger.debug(`npm 로그인 확인: ${npmWhoami.trim()}`);
|
|
97
|
+
const yarnWhoami = await SdProcess.spawnAsync("yarn", ["npm", "whoami"]);
|
|
98
|
+
if (StringUtils.isNullOrEmpty(yarnWhoami.trim())) {
|
|
99
|
+
throw new Error();
|
|
100
|
+
}
|
|
101
|
+
logger.debug(`yarn 로그인 확인: ${yarnWhoami.trim()}`);
|
|
92
102
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
103
|
+
catch {
|
|
104
|
+
throw new Error("npm 토큰이 유효하지 않거나 만료되었습니다.\n" +
|
|
105
|
+
"https://www.npmjs.com/settings/~/tokens 에서 Granular Access Token 생성 후:\n" +
|
|
106
|
+
" npm config set //registry.npmjs.org/:_authToken <토큰>\n" +
|
|
107
|
+
" yarn config set npmAuthToken <토큰> --home");
|
|
97
108
|
}
|
|
98
|
-
logger.debug(`yarn 로그인 확인: ${yarnWhoami.trim()}`);
|
|
99
|
-
}
|
|
100
|
-
catch {
|
|
101
|
-
throw new Error("npm 토큰이 유효하지 않거나 만료되었습니다.\n" +
|
|
102
|
-
"https://www.npmjs.com/settings/~/tokens 에서 Granular Access Token 생성 후:\n" +
|
|
103
|
-
" npm config set //registry.npmjs.org/:_authToken <토큰>\n" +
|
|
104
|
-
" yarn config set npmAuthToken <토큰> --home");
|
|
105
109
|
}
|
|
106
|
-
logger.debug("프로젝트 설정 가져오기...");
|
|
107
|
-
const projConf = await loadProjConfAsync(process.cwd(), false, opt);
|
|
108
110
|
logger.debug("프로젝트 package.json 가져오기...");
|
|
109
111
|
const projNpmConf = FsUtils.readJson(path.resolve(process.cwd(), "package.json"));
|
|
110
112
|
if (opt.noBuild) {
|
|
@@ -232,27 +232,33 @@ export class SdProjectBuildRunner {
|
|
|
232
232
|
return new Set([...workspacePaths, ...localUpdatePaths].map((item) => PathUtils.norm(item)));
|
|
233
233
|
}
|
|
234
234
|
static async _restartServerAsync(prevWorker, pkgPath, pkgConfOrPort) {
|
|
235
|
-
|
|
236
|
-
|
|
235
|
+
try {
|
|
236
|
+
if (prevWorker) {
|
|
237
|
+
await prevWorker.killAsync();
|
|
238
|
+
}
|
|
239
|
+
const npmConf = FsUtils.readJson(path.resolve(pkgPath, "package.json"));
|
|
240
|
+
const worker = new SdWorker(import.meta.resolve("../workers/server.worker"), {
|
|
241
|
+
env: {
|
|
242
|
+
NODE_ENV: "development",
|
|
243
|
+
TZ: "Asia/Seoul",
|
|
244
|
+
SD_VERSION: npmConf.version,
|
|
245
|
+
...(typeof pkgConfOrPort === "number" ? {} : pkgConfOrPort.env),
|
|
246
|
+
},
|
|
247
|
+
resourceLimits: {
|
|
248
|
+
maxOldGenerationSizeMb: 2048,
|
|
249
|
+
maxYoungGenerationSizeMb: 8,
|
|
250
|
+
stackSizeMb: 2,
|
|
251
|
+
},
|
|
252
|
+
});
|
|
253
|
+
const port = await worker.run("listen", [
|
|
254
|
+
typeof pkgConfOrPort === "number" ? pkgConfOrPort : pkgPath,
|
|
255
|
+
]);
|
|
256
|
+
this._logger.debug("서버가 시작되었습니다.");
|
|
257
|
+
return { worker, port };
|
|
258
|
+
}
|
|
259
|
+
catch (err) {
|
|
260
|
+
this._logger.error("서버 재시작 실패: ", err);
|
|
261
|
+
return {};
|
|
237
262
|
}
|
|
238
|
-
const npmConf = FsUtils.readJson(path.resolve(pkgPath, "package.json"));
|
|
239
|
-
const worker = new SdWorker(import.meta.resolve("../workers/server.worker"), {
|
|
240
|
-
env: {
|
|
241
|
-
NODE_ENV: "development",
|
|
242
|
-
TZ: "Asia/Seoul",
|
|
243
|
-
SD_VERSION: npmConf.version,
|
|
244
|
-
...(typeof pkgConfOrPort === "number" ? {} : pkgConfOrPort.env),
|
|
245
|
-
},
|
|
246
|
-
resourceLimits: {
|
|
247
|
-
maxOldGenerationSizeMb: 2048,
|
|
248
|
-
maxYoungGenerationSizeMb: 8,
|
|
249
|
-
stackSizeMb: 2,
|
|
250
|
-
},
|
|
251
|
-
});
|
|
252
|
-
const port = await worker.run("listen", [
|
|
253
|
-
typeof pkgConfOrPort === "number" ? pkgConfOrPort : pkgPath,
|
|
254
|
-
]);
|
|
255
|
-
this._logger.debug("서버가 시작되었습니다.");
|
|
256
|
-
return { worker, port };
|
|
257
263
|
}
|
|
258
264
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@simplysm/sd-cli",
|
|
3
|
-
"version": "12.15.
|
|
3
|
+
"version": "12.15.65",
|
|
4
4
|
"description": "심플리즘 패키지 - CLI",
|
|
5
5
|
"author": "김석래",
|
|
6
6
|
"repository": {
|
|
@@ -17,10 +17,10 @@
|
|
|
17
17
|
"@angular/compiler-cli": "^20.3.15",
|
|
18
18
|
"@anthropic-ai/sdk": "^0.71.2",
|
|
19
19
|
"@electron/rebuild": "^4.0.2",
|
|
20
|
-
"@simplysm/sd-core-common": "12.15.
|
|
21
|
-
"@simplysm/sd-core-node": "12.15.
|
|
22
|
-
"@simplysm/sd-service-server": "12.15.
|
|
23
|
-
"@simplysm/sd-storage": "12.15.
|
|
20
|
+
"@simplysm/sd-core-common": "12.15.65",
|
|
21
|
+
"@simplysm/sd-core-node": "12.15.65",
|
|
22
|
+
"@simplysm/sd-service-server": "12.15.65",
|
|
23
|
+
"@simplysm/sd-storage": "12.15.65",
|
|
24
24
|
"browserslist": "^4.28.1",
|
|
25
25
|
"cordova": "^13.0.0",
|
|
26
26
|
"electron": "^33.4.11",
|
|
@@ -130,31 +130,33 @@ export class SdCliProject {
|
|
|
130
130
|
}): Promise<void> {
|
|
131
131
|
const logger = SdLogger.get(["simplysm", "sd-cli", "SdCliProject", "publishAsync"]);
|
|
132
132
|
|
|
133
|
-
logger.debug("
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
133
|
+
logger.debug("프로젝트 설정 가져오기...");
|
|
134
|
+
const projConf = await loadProjConfAsync(process.cwd(), false, opt);
|
|
135
|
+
|
|
136
|
+
if (Object.values(projConf.packages).some((item) => item?.publish === "npm")) {
|
|
137
|
+
logger.debug("npm/yarn 토큰 유효성 체크...");
|
|
138
|
+
try {
|
|
139
|
+
const npmWhoami = await SdProcess.spawnAsync("npm", ["whoami"]);
|
|
140
|
+
if (StringUtils.isNullOrEmpty(npmWhoami.trim())) {
|
|
141
|
+
throw new Error();
|
|
142
|
+
}
|
|
143
|
+
logger.debug(`npm 로그인 확인: ${npmWhoami.trim()}`);
|
|
140
144
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
145
|
+
const yarnWhoami = await SdProcess.spawnAsync("yarn", ["npm", "whoami"]);
|
|
146
|
+
if (StringUtils.isNullOrEmpty(yarnWhoami.trim())) {
|
|
147
|
+
throw new Error();
|
|
148
|
+
}
|
|
149
|
+
logger.debug(`yarn 로그인 확인: ${yarnWhoami.trim()}`);
|
|
150
|
+
} catch {
|
|
151
|
+
throw new Error(
|
|
152
|
+
"npm 토큰이 유효하지 않거나 만료되었습니다.\n" +
|
|
153
|
+
"https://www.npmjs.com/settings/~/tokens 에서 Granular Access Token 생성 후:\n" +
|
|
154
|
+
" npm config set //registry.npmjs.org/:_authToken <토큰>\n" +
|
|
155
|
+
" yarn config set npmAuthToken <토큰> --home",
|
|
156
|
+
);
|
|
144
157
|
}
|
|
145
|
-
logger.debug(`yarn 로그인 확인: ${yarnWhoami.trim()}`);
|
|
146
|
-
} catch {
|
|
147
|
-
throw new Error(
|
|
148
|
-
"npm 토큰이 유효하지 않거나 만료되었습니다.\n" +
|
|
149
|
-
"https://www.npmjs.com/settings/~/tokens 에서 Granular Access Token 생성 후:\n" +
|
|
150
|
-
" npm config set //registry.npmjs.org/:_authToken <토큰>\n" +
|
|
151
|
-
" yarn config set npmAuthToken <토큰> --home"
|
|
152
|
-
);
|
|
153
158
|
}
|
|
154
159
|
|
|
155
|
-
logger.debug("프로젝트 설정 가져오기...");
|
|
156
|
-
const projConf = await loadProjConfAsync(process.cwd(), false, opt);
|
|
157
|
-
|
|
158
160
|
logger.debug("프로젝트 package.json 가져오기...");
|
|
159
161
|
const projNpmConf = FsUtils.readJson(path.resolve(process.cwd(), "package.json")) as INpmConfig;
|
|
160
162
|
|
|
@@ -358,36 +358,41 @@ export class SdProjectBuildRunner {
|
|
|
358
358
|
pkgPath: string,
|
|
359
359
|
pkgConfOrPort: ISdServerPackageConfig | number,
|
|
360
360
|
): Promise<{
|
|
361
|
-
worker
|
|
362
|
-
port
|
|
361
|
+
worker?: SdWorker<IServerWorkerType>;
|
|
362
|
+
port?: number;
|
|
363
363
|
}> {
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
364
|
+
try {
|
|
365
|
+
if (prevWorker) {
|
|
366
|
+
await prevWorker.killAsync();
|
|
367
|
+
}
|
|
367
368
|
|
|
368
|
-
|
|
369
|
+
const npmConf = FsUtils.readJson(path.resolve(pkgPath, "package.json")) as INpmConfig;
|
|
369
370
|
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
371
|
+
const worker = new SdWorker<IServerWorkerType>(
|
|
372
|
+
import.meta.resolve("../workers/server.worker"),
|
|
373
|
+
{
|
|
374
|
+
env: {
|
|
375
|
+
NODE_ENV: "development",
|
|
376
|
+
TZ: "Asia/Seoul",
|
|
377
|
+
SD_VERSION: npmConf.version,
|
|
378
|
+
...(typeof pkgConfOrPort === "number" ? {} : pkgConfOrPort.env),
|
|
379
|
+
},
|
|
380
|
+
resourceLimits: {
|
|
381
|
+
maxOldGenerationSizeMb: 2048,
|
|
382
|
+
maxYoungGenerationSizeMb: 8,
|
|
383
|
+
stackSizeMb: 2,
|
|
384
|
+
},
|
|
383
385
|
},
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
this._logger.debug("서버가 시작되었습니다.");
|
|
386
|
+
);
|
|
387
|
+
const port = await worker.run("listen", [
|
|
388
|
+
typeof pkgConfOrPort === "number" ? pkgConfOrPort : pkgPath,
|
|
389
|
+
]);
|
|
390
|
+
this._logger.debug("서버가 시작되었습니다.");
|
|
390
391
|
|
|
391
|
-
|
|
392
|
+
return { worker, port };
|
|
393
|
+
} catch (err) {
|
|
394
|
+
this._logger.error("서버 재시작 실패: ", err);
|
|
395
|
+
return {};
|
|
396
|
+
}
|
|
392
397
|
}
|
|
393
398
|
}
|