diff --git a/electron.vite.config.ts b/electron.vite.config.ts new file mode 100644 index 0000000..8337ba4 --- /dev/null +++ b/electron.vite.config.ts @@ -0,0 +1,38 @@ +import { resolve } from 'path'; +import { defineConfig, externalizeDepsPlugin } from 'electron-vite'; +import react from '@vitejs/plugin-react'; + +export default defineConfig({ + main: { + plugins: [externalizeDepsPlugin()], + build: { + rollupOptions: { + input: { + index: resolve(__dirname, 'src/main/index.ts'), + }, + }, + }, + }, + preload: { + plugins: [externalizeDepsPlugin()], + build: { + rollupOptions: { + input: { + index: resolve(__dirname, 'src/preload/index.ts'), + }, + }, + }, + }, + renderer: { + root: 'src/renderer', + plugins: [react()], + build: { + rollupOptions: { + input: { + popover: resolve(__dirname, 'src/renderer/popover/index.html'), + settings: resolve(__dirname, 'src/renderer/settings/index.html'), + }, + }, + }, + }, +}); diff --git a/package.json b/package.json new file mode 100644 index 0000000..181b6fa --- /dev/null +++ b/package.json @@ -0,0 +1,107 @@ +{ + "name": "@pieroot/nfd2nfc", + "version": "2.0.0", + "description": "macOS 한글 파일명 NFD→NFC 실시간 변환 트레이 앱 + CLI + 라이브러리", + "main": "out/lib/index.js", + "types": "out/lib/index.d.ts", + "exports": { + ".": { + "types": "./out/lib/index.d.ts", + "default": "./out/lib/index.js" + } + }, + "bin": { + "nfd2nfc": "out/cli/index.js" + }, + "files": [ + "out/cli/**", + "out/lib/**", + "resources/**", + "README.md", + "LICENSE" + ], + "scripts": { + "dev": "electron-vite dev", + "build:app": "electron-vite build", + "build:cli": "tsc --project tsconfig.cli.json", + "build:lib": "tsc --project tsconfig.lib.json", + "build": "npm run build:app && npm run build:cli && npm run build:lib && electron-builder", + "prepublishOnly": "npm run build:cli && npm run build:lib && chmod +x out/cli/index.js", + "preview": "electron-vite preview", + "test": "vitest run", + "test:watch": "vitest", + "lint": "eslint src --ext .ts,.tsx", + "typecheck": "tsc --noEmit && tsc --noEmit --project tsconfig.cli.json && tsc --noEmit --project tsconfig.lib.json" + }, + "dependencies": { + "chokidar": "^3.6.0", + "yargs": "^17.7.2" + }, + "devDependencies": { + "@types/node": "^20.14.0", + "@types/react": "^19", + "@types/react-dom": "^19", + "@types/yargs": "^17.0.32", + "@typescript-eslint/eslint-plugin": "^7.7.0", + "@typescript-eslint/parser": "^7.7.0", + "@vitejs/plugin-react": "^4.3.4", + "electron": "^35.1.5", + "electron-builder": "^26.0.12", + "electron-vite": "^2.3.0", + "eslint": "^8.57.0", + "prettier": "^3.2.5", + "react": "^19.2.6", + "react-dom": "^19.2.6", + "typescript": "^5.4.0", + "vite": "^5.2.0", + "vitest": "^1.6.1" + }, + "author": "jung-geun ", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/jung-geun/NFD2NFC.git" + }, + "bugs": { + "url": "https://github.com/jung-geun/NFD2NFC/issues" + }, + "homepage": "https://github.com/jung-geun/NFD2NFC#readme", + "keywords": [ + "NFD", + "NFC", + "Unicode", + "Normalization", + "macOS", + "korean", + "electron", + "tray" + ], + "build": { + "appId": "com.pieroot.nfd2nfc", + "productName": "NFD2NFC", + "extraMetadata": { + "main": "out/main/index.js" + }, + "files": [ + "out/main/**", + "out/preload/**", + "out/renderer/**", + "resources/**", + "package.json" + ], + "mac": { + "category": "public.app-category.utilities", + "icon": "resources/icon.icns", + "target": [ + { + "target": "dmg", + "arch": ["arm64", "x64"] + } + ] + }, + "directories": { + "buildResources": "resources", + "output": "dist" + } + } +}