diff --git a/wai-server/README.md b/wai-server/README.md deleted file mode 100644 index 6470810..0000000 --- a/wai-server/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# koa-template - -Koa boilerplate template for create-koa-application. diff --git a/wai-server/copy-to-dist.js b/wai-server/copy-to-dist.js new file mode 100644 index 0000000..00baf6d --- /dev/null +++ b/wai-server/copy-to-dist.js @@ -0,0 +1,44 @@ +const fs = require('fs-extra'); +const path = require('path'); + +const copyItems = [ + 'api', + 'config', + 'core', + 'helper', + 'middleware', + 'models', + 'services', + 'utils', + 'index.js', + 'server.js' +]; + +// 目标目录(dist) +const distPath = path.resolve(__dirname, 'dist'); + +async function copyFiles() { + try { + // 确保dist目录存在 + await fs.ensureDir(distPath); + + // 遍历并复制每一项 + for (const item of copyItems) { + const srcPath = path.resolve(__dirname, item); + const destPath = path.join(distPath, path.basename(item)); + + if (await fs.pathExists(srcPath)) { + await fs.copy(srcPath, destPath, { overwrite: true }); + console.log(`✅ 已复制: ${item} → ${destPath}`); + } else { + console.warn(`⚠️ 路径不存在: ${srcPath}`); + } + } + console.log('🎉 所有文件复制完成!'); + } catch (err) { + console.error('❌ 复制失败:', err); + process.exit(1); + } +} + +copyFiles(); diff --git a/wai-server/pm2-install.txt b/wai-server/docs/pm2-install.txt similarity index 100% rename from wai-server/pm2-install.txt rename to wai-server/docs/pm2-install.txt diff --git a/wai-server/jest.config.js b/wai-server/jest.config.js deleted file mode 100644 index 49bfdde..0000000 --- a/wai-server/jest.config.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - verbose: true, -}; diff --git a/wai-server/package-lock.json b/wai-server/package-lock.json index 71f6d0c..e3d1659 100644 --- a/wai-server/package-lock.json +++ b/wai-server/package-lock.json @@ -36,6 +36,7 @@ "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^5.2.1", "eslint-plugin-promise": "^6.6.0", + "fs-extra": "^11.3.1", "husky": "2.3.0", "nodemon": "1.19.0", "prettier": "^3.4.2" @@ -4334,16 +4335,17 @@ } }, "node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "version": "11.3.1", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-11.3.1.tgz", + "integrity": "sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g==", + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": ">=6 <7 || >=8" + "node": ">=14.14" } }, "node_modules/fs.realpath": { @@ -6696,9 +6698,13 @@ } }, "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "version": "6.2.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, "optionalDependencies": { "graceful-fs": "^4.1.6" } @@ -9326,11 +9332,43 @@ } } }, + "node_modules/streamroller/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/streamroller/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, "node_modules/streamroller/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, + "node_modules/streamroller/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, "node_modules/streamsearch": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", @@ -9965,11 +10003,12 @@ } }, "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", "engines": { - "node": ">= 4.0.0" + "node": ">= 10.0.0" } }, "node_modules/unpipe": { diff --git a/wai-server/package.json b/wai-server/package.json index 75c82c9..601969d 100644 --- a/wai-server/package.json +++ b/wai-server/package.json @@ -9,6 +9,7 @@ "format": "prettier --write \"**/*.+(js|yml|yaml|json)\"", "lint": "eslint .", "start": "node index.js", + "build": "node copy-to-dist.js", "test": "NODE_ENV=test jest'" }, "devDependencies": { @@ -20,6 +21,7 @@ "eslint-plugin-prettier": "^5.2.1", "eslint-plugin-promise": "^6.6.0", "husky": "2.3.0", + "fs-extra": "^11.3.1", "nodemon": "1.19.0", "prettier": "^3.4.2" },