114 lines
3.6 KiB
JSON
114 lines
3.6 KiB
JSON
{
|
|
"name": "bank-management-backend",
|
|
"version": "1.0.0",
|
|
"description": "银行管理后台系统后端API服务",
|
|
"main": "server.js",
|
|
"author": "Bank Development Team",
|
|
"license": "MIT",
|
|
"keywords": [
|
|
"nodejs",
|
|
"express",
|
|
"sequelize",
|
|
"mysql",
|
|
"api",
|
|
"banking",
|
|
"financial",
|
|
"management"
|
|
],
|
|
"engines": {
|
|
"node": ">=16.0.0",
|
|
"npm": ">=8.0.0"
|
|
},
|
|
"scripts": {
|
|
"start": "node server.js",
|
|
"dev": "nodemon server.js",
|
|
"init-db": "node scripts/init-db.js",
|
|
"test-connection": "node scripts/test-connection.js",
|
|
"migrate": "node scripts/migration-manager.js",
|
|
"seed": "node scripts/seed-manager.js",
|
|
"backup": "node scripts/backup-db.js",
|
|
"restore": "node scripts/restore-db.js",
|
|
"lint": "eslint . --ext .js",
|
|
"lint:fix": "eslint . --ext .js --fix",
|
|
"test": "jest",
|
|
"test:watch": "jest --watch",
|
|
"test:coverage": "jest --coverage",
|
|
"build": "echo 'No build step required for Node.js backend'",
|
|
"clean": "node -e \"const fs = require('fs'); const path = require('path'); try { const logDir = 'logs'; const tempDir = 'uploads/temp'; if (fs.existsSync(logDir)) { fs.readdirSync(logDir).forEach(file => { if (file.endsWith('.log')) fs.unlinkSync(path.join(logDir, file)); }); } if (fs.existsSync(tempDir)) { fs.rmSync(tempDir, { recursive: true, force: true }); } console.log('✅ Cleanup completed'); } catch (err) { console.error('❌ Cleanup failed:', err.message); }\"",
|
|
"health-check": "node -e \"const { sequelize } = require('./config/database'); sequelize.authenticate().then(() => { console.log('✅ Database connection healthy'); process.exit(0); }).catch(err => { console.error('❌ Database connection failed:', err.message); process.exit(1); });\""
|
|
},
|
|
"dependencies": {
|
|
"archiver": "^6.0.1",
|
|
"axios": "^1.6.0",
|
|
"bcryptjs": "^2.4.3",
|
|
"compression": "^1.7.4",
|
|
"cors": "^2.8.5",
|
|
"dotenv": "^16.3.1",
|
|
"ejs": "^3.1.9",
|
|
"express": "^4.18.2",
|
|
"express-rate-limit": "^7.1.5",
|
|
"express-validator": "^7.0.1",
|
|
"helmet": "^7.1.0",
|
|
"jsonwebtoken": "^9.0.2",
|
|
"moment": "^2.29.4",
|
|
"multer": "^1.4.5-lts.1",
|
|
"mysql2": "^3.6.5",
|
|
"node-cron": "^3.0.3",
|
|
"nodemailer": "^6.9.8",
|
|
"redis": "^4.6.12",
|
|
"sequelize": "^6.35.2",
|
|
"sharp": "^0.33.2",
|
|
"socket.io": "^4.7.4",
|
|
"swagger-jsdoc": "^6.2.8",
|
|
"swagger-ui-express": "^5.0.0",
|
|
"winston": "^3.11.0",
|
|
"xlsx": "^0.18.5"
|
|
},
|
|
"devDependencies": {
|
|
"nodemon": "^3.0.2",
|
|
"eslint": "^8.55.0",
|
|
"eslint-config-standard": "^17.1.0",
|
|
"eslint-plugin-import": "^2.29.0",
|
|
"eslint-plugin-node": "^11.1.0",
|
|
"eslint-plugin-promise": "^6.1.1",
|
|
"jest": "^29.7.0",
|
|
"supertest": "^6.3.3",
|
|
"rimraf": "^5.0.5",
|
|
"@types/jest": "^29.5.8"
|
|
},
|
|
"jest": {
|
|
"testEnvironment": "node",
|
|
"collectCoverageFrom": [
|
|
"controllers/**/*.js",
|
|
"models/**/*.js",
|
|
"routes/**/*.js",
|
|
"utils/**/*.js",
|
|
"!**/node_modules/**",
|
|
"!**/migrations/**",
|
|
"!**/seeds/**"
|
|
],
|
|
"coverageDirectory": "coverage",
|
|
"coverageReporters": ["text", "lcov", "html"]
|
|
},
|
|
"eslintConfig": {
|
|
"extends": ["standard"],
|
|
"env": {
|
|
"node": true,
|
|
"es2021": true,
|
|
"jest": true
|
|
},
|
|
"rules": {
|
|
"no-console": "warn",
|
|
"no-unused-vars": "error",
|
|
"prefer-const": "error"
|
|
}
|
|
},
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "https://github.com/bank-management/bank-backend.git"
|
|
},
|
|
"bugs": {
|
|
"url": "https://github.com/bank-management/bank-backend/issues"
|
|
},
|
|
"homepage": "https://github.com/bank-management/bank-backend#readme"
|
|
} |