프레임워크 / 언어

스타일

API

상태 관리

배포 플랫폼

협업

MVC 폴더명

// ex: item
router : item.route.js
controller: item.controller.js
service: item.service.js
repository: item.repositroy.js
import js from "@eslint/js";
import eslintConfigPrettier from "eslint-config-prettier/flat";

export default [
  js.configs.recommended,
  {
    languageOptions: {
      ecmaVersion: 2024,
      sourceType: "module",
      globals: {
        console: "readonly",
        process: "readonly",
      },
    },
    rules: {
      "no-unused-vars": ["warn", { argsIgnorePattern: "^_" }],
      "no-console": "off",
      "prefer-const": "error",
      "no-var": "error",
    },
  },
  eslintConfigPrettier,
];

{
  "compilerOptions": {
    "module": "esnext",
    "moduleResolution": "node",
    "target": "esnext",
    "strict": true,
    "esModuleInterop": true,
  }
}
{
  "singleQuote": true,
  "semi": true,
  "trailingComma": "all",
  "printWidth": 100,
  "tabWidth": 2,
  "useTabs": false,
}
{
  "name": "myString-photo-backend-server",
  "version": "1.0.0",
  "description": "myString-photo-server",
  "main": "src/server.js",
  "type": "module",
  "scripts": {
    "dev": "nodemon src/server.js",
    "start": "node dist/src/server.js",
    //"build": "npx swc src -d dist && node dist/src/swagger.js",
    "format": "prettier --cache --write src/**/*.js",
    "lint": "eslint --cache .",
    "prisma": "node node_modules/prisma/build/index.js",
    "db:push": "npm run prisma -- db push",
    "migrate:dev": "npm run prisma -- migrate dev",
    "migrate:deploy": "npm run prisma -- migrate deploy",
    "migrate:reset": "npm run prisma -- migrate reset",
    "generate": "npm run prisma generate",
    "studio": "npm run prisma -- studio",
  },
  "lint-staged": {
    "**/*.(js.jsx.ts.tsx)": [
      "prettier --write",
      "eslint --fix"
    ]
  },
  "keywords": [
    "sprint-mission"
  ],
  "license": "MIT",
  "engines": {
    "node": ">=24.x",
    "npm": ">=11.x"
  },
  "dependencies": {
    "@faker-js/faker": "^10.0.0",
    // 프리즈마 버전에 따라 선택
    //"@prisma/adapter-pg": "^7.0.0",
    //"@prisma/client": "^7.0.0",
    // 배포용
    //"@swc/cli": "^0.7.8",
    //"@swc/core": "^1.13.5",
    "bcrypt": "^6.0.0",
    "cookie-parser": "^1.4.7",
    //"cuid": "^3.0.0",
    //"dotenv": "^17.2.2",
    "express": "^5.1.0",
    "express-jwt": "^8.5.1",
    "morgan": "^1.10.1",
    "multer": "^2.0.2",
    "passport": "^0.7.0",
    // 심화 나중에 구글 추가 
    //"passport-google-oauth20": "^2.0.0",
    "passport-jwt": "^4.0.1",
    "passport-local": "^1.0.0",
    //"swagger-jsdoc": "^6.2.8",
    //"swagger-ui-express": "^5.0.1",
    "uuid": "^13.0.0",
    "zod": "^4.1.11"
  },
  "devDependencies": {
    "@eslint/js": "^9.36.0",
    "@types/express": "^5.0.3",
    "@types/node": "^24.5.2",
    //"dotenv-cli": "^11.0.0",
    "eslint": "^9.36.0",
    "eslint-config-prettier": "^10.1.8",
    "husky": "^9.1.7",
    //"jest": "^30.2.0",
    "lint-staged": "^16.2.0",
    "nodemon": "^3.1.10",
    "prettier": "^3.6.2",
    // 프리즈마 버전에 따라 선택
    //"prisma": "^7.0.0",
    //"supertest": "^7.1.4"
  }
}