개발 서버 실행 로그 정리
This commit is contained in:
@@ -9,6 +9,8 @@
|
|||||||
| 개발 | `npm run dev` | 로컬 테스트, 개발 서버 |
|
| 개발 | `npm run dev` | 로컬 테스트, 개발 서버 |
|
||||||
| 프로덕션 | `npm run build` | NAS 배포, 운영 서버 |
|
| 프로덕션 | `npm run build` | NAS 배포, 운영 서버 |
|
||||||
|
|
||||||
|
> `npm run dev`는 프로젝트 전용 실행 스크립트를 통해 Localhost, Local IP, Admin, Tailwind Viewer 링크만 요약 출력한다.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 로컬 개발
|
## 로컬 개발
|
||||||
@@ -67,6 +69,7 @@ docker exec sori-studio-db psql -U sori_studio -d sori_studio -c 'SELECT count(*
|
|||||||
|
|
||||||
- 개발 서버: http://127.0.0.1:43117
|
- 개발 서버: http://127.0.0.1:43117
|
||||||
- 관리자: http://127.0.0.1:43117/admin
|
- 관리자: http://127.0.0.1:43117/admin
|
||||||
|
- Tailwind Viewer: http://127.0.0.1:43117/_tailwind/
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,13 @@
|
|||||||
# 의사결정 이력
|
# 의사결정 이력
|
||||||
|
|
||||||
|
## 2026-05-01 v0.0.13
|
||||||
|
|
||||||
|
### 개발 서버 로그 요약 방식 결정
|
||||||
|
|
||||||
|
Nuxt 개발 서버의 기본 로그는 프레임워크 상태와 빌드 이벤트를 자세히 보여주지만, 일상적인 로컬 개발에서는 접속 링크만 빠르게 확인하는 편이 더 효율적이다. 따라서 `npm run dev`는 프로젝트 전용 래퍼 스크립트로 Nuxt dev 서버를 실행하고, 터미널에는 Localhost, Local IP, Admin, Tailwind Viewer 링크를 요약 출력한다.
|
||||||
|
|
||||||
|
오류나 경고에 가까운 로그는 계속 터미널에 남긴다. 개발 서버 실행 자체는 Nuxt CLI를 그대로 사용하되 출력만 정리해, 프레임워크 동작 방식은 바꾸지 않고 로컬 사용성만 개선한다.
|
||||||
|
|
||||||
## 2026-05-01 v0.0.12
|
## 2026-05-01 v0.0.12
|
||||||
|
|
||||||
### 제목과 본문 입력 흐름 보정
|
### 제목과 본문 입력 흐름 보정
|
||||||
|
|||||||
@@ -122,6 +122,7 @@
|
|||||||
| assets/css/main.css | 전역 스타일 |
|
| assets/css/main.css | 전역 스타일 |
|
||||||
| composables/useMenuState.js | 좌측 메뉴 열림 상태 관리 |
|
| composables/useMenuState.js | 좌측 메뉴 열림 상태 관리 |
|
||||||
| middleware/admin-auth.global.js | 관리자 페이지 접근 인증 |
|
| middleware/admin-auth.global.js | 관리자 페이지 접근 인증 |
|
||||||
|
| scripts/dev-server.js | 로컬 개발 서버 링크 요약 출력 |
|
||||||
| scripts/migrate-development-db.js | 로컬 개발 DB 마이그레이션 실행 |
|
| scripts/migrate-development-db.js | 로컬 개발 DB 마이그레이션 실행 |
|
||||||
| .env.example | 환경 변수 예시 |
|
| .env.example | 환경 변수 예시 |
|
||||||
| Dockerfile | NAS 운영 이미지 빌드 |
|
| Dockerfile | NAS 운영 이미지 빌드 |
|
||||||
|
|||||||
@@ -293,6 +293,6 @@ APP_PORT=43118
|
|||||||
|
|
||||||
## 버전 관리
|
## 버전 관리
|
||||||
|
|
||||||
- 현재 버전: v0.0.12
|
- 현재 버전: v0.0.13
|
||||||
- 첫 커밋 이후 변경사항을 커밋할 때마다 패치 버전 증가
|
- 첫 커밋 이후 변경사항을 커밋할 때마다 패치 버전 증가
|
||||||
- 메이저/마이너 버전은 구조 변경 또는 기능 묶음 단위로 결정
|
- 메이저/마이너 버전은 구조 변경 또는 기능 묶음 단위로 결정
|
||||||
|
|||||||
@@ -1,5 +1,11 @@
|
|||||||
# 업데이트 이력
|
# 업데이트 이력
|
||||||
|
|
||||||
|
## v0.0.13
|
||||||
|
|
||||||
|
- 개발 서버 실행 로그를 프로젝트 전용 링크 요약 출력으로 정리.
|
||||||
|
- `npm run dev`가 `scripts/dev-server.js`를 통해 Nuxt 개발 서버를 실행하도록 수정.
|
||||||
|
- 패키지 버전을 0.0.13으로 갱신.
|
||||||
|
|
||||||
## v0.0.12
|
## v0.0.12
|
||||||
|
|
||||||
- 관리자 글 제목 입력에서 Enter 입력 시 본문 첫 블록으로 이동하도록 수정.
|
- 관리자 글 제목 입력에서 Enter 입력 시 본문 첫 블록으로 이동하도록 수정.
|
||||||
|
|||||||
4
package-lock.json
generated
4
package-lock.json
generated
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "sori.studio",
|
"name": "sori.studio",
|
||||||
"version": "0.0.12",
|
"version": "0.0.13",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "sori.studio",
|
"name": "sori.studio",
|
||||||
"version": "0.0.12",
|
"version": "0.0.13",
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@nuxtjs/tailwindcss": "^6.14.0",
|
"@nuxtjs/tailwindcss": "^6.14.0",
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
{
|
{
|
||||||
"name": "sori.studio",
|
"name": "sori.studio",
|
||||||
"version": "0.0.12",
|
"version": "0.0.13",
|
||||||
"private": true,
|
"private": true,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "nuxt dev --dotenv .env.development --host 127.0.0.1 --port 43117",
|
"dev": "node scripts/dev-server.js",
|
||||||
"build": "nuxt build",
|
"build": "nuxt build",
|
||||||
"preview": "nuxt preview --dotenv .env.development --host 127.0.0.1 --port 43117",
|
"preview": "nuxt preview --dotenv .env.development --host 127.0.0.1 --port 43117",
|
||||||
"db:migrate:dev": "node scripts/migrate-development-db.js",
|
"db:migrate:dev": "node scripts/migrate-development-db.js",
|
||||||
|
|||||||
75
scripts/dev-server.js
Normal file
75
scripts/dev-server.js
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
import { spawn } from 'node:child_process'
|
||||||
|
|
||||||
|
const host = '127.0.0.1'
|
||||||
|
const port = '43117'
|
||||||
|
let printedLinks = false
|
||||||
|
|
||||||
|
const nuxtProcess = spawn('nuxt', [
|
||||||
|
'dev',
|
||||||
|
'--dotenv',
|
||||||
|
'.env.development',
|
||||||
|
'--host',
|
||||||
|
host,
|
||||||
|
'--port',
|
||||||
|
port
|
||||||
|
], {
|
||||||
|
shell: true,
|
||||||
|
stdio: ['inherit', 'pipe', 'pipe']
|
||||||
|
})
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 개발 서버 링크 출력
|
||||||
|
* @param {string} localUrl - Nuxt 로컬 URL
|
||||||
|
* @returns {void}
|
||||||
|
*/
|
||||||
|
const printDevLinks = (localUrl) => {
|
||||||
|
const url = new URL(localUrl)
|
||||||
|
const origin = `${url.protocol}//${url.hostname}:${url.port}`
|
||||||
|
const localhostOrigin = `${url.protocol}//localhost:${url.port}`
|
||||||
|
|
||||||
|
console.log('')
|
||||||
|
console.log('sori.studio 개발 서버')
|
||||||
|
console.log(`- Localhost: ${localhostOrigin}/`)
|
||||||
|
console.log(`- Local IP: ${origin}/`)
|
||||||
|
console.log(`- Admin: ${origin}/admin`)
|
||||||
|
console.log(`- Tailwind Viewer: ${origin}/_tailwind/`)
|
||||||
|
console.log('')
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Nuxt 로그 처리
|
||||||
|
* @param {Buffer} chunk - 로그 버퍼
|
||||||
|
* @returns {void}
|
||||||
|
*/
|
||||||
|
const handleNuxtLog = (chunk) => {
|
||||||
|
const text = chunk.toString()
|
||||||
|
|
||||||
|
for (const line of text.split('\n')) {
|
||||||
|
const localMatch = line.match(/Local:\s+(https?:\/\/[^\s]+)/)
|
||||||
|
|
||||||
|
if (localMatch && !printedLinks) {
|
||||||
|
printedLinks = true
|
||||||
|
printDevLinks(localMatch[1])
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
if (/(^|\s)(error:|warn:|warning:|failed|fatal|eaddrinuse|cannot)\b/i.test(line)) {
|
||||||
|
console.log(line)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
nuxtProcess.stdout.on('data', handleNuxtLog)
|
||||||
|
nuxtProcess.stderr.on('data', handleNuxtLog)
|
||||||
|
|
||||||
|
nuxtProcess.on('close', (code) => {
|
||||||
|
process.exit(code || 0)
|
||||||
|
})
|
||||||
|
|
||||||
|
process.on('SIGINT', () => {
|
||||||
|
nuxtProcess.kill('SIGINT')
|
||||||
|
})
|
||||||
|
|
||||||
|
process.on('SIGTERM', () => {
|
||||||
|
nuxtProcess.kill('SIGTERM')
|
||||||
|
})
|
||||||
Reference in New Issue
Block a user