diff --git a/app.js b/app.js index 11dbbcc..1337be3 100755 --- a/app.js +++ b/app.js @@ -8,11 +8,9 @@ async function start() { if (!fs.existsSync(path.resolve(tmpPath, 'anonymous_token'))) { fs.writeFileSync(path.resolve(tmpPath, 'anonymous_token'), '', 'utf-8') } - // 启动时更新anonymous_token(Vercel 构建环境下跳过网络请求喵~) - if (!process.env.VERCEL_ENV) { - const generateConfig = require('./generateConfig') - await generateConfig() - } + // 启动时更新anonymous_token + const generateConfig = require('./generateConfig') + await generateConfig() require('./server').serveNcmApi({ checkVersion: true, }) diff --git a/index.js b/index.js index 39d0ba3..c4da30b 100644 --- a/index.js +++ b/index.js @@ -1 +1,29 @@ -require('./app.js') +// Serverless 入口 + 本地开发通用入口 + +const fs = require('fs') +const path = require('path') +const tmpPath = require('os').tmpdir() + +// 确保 anonymous_token 文件存在(util/request.js 加载时需要读取) +if (!fs.existsSync(path.resolve(tmpPath, 'anonymous_token'))) { + fs.writeFileSync(path.resolve(tmpPath, 'anonymous_token'), '', 'utf-8') +} + +const { constructServer } = require('./server') +const generateConfig = require('./generateConfig') + +// Serverless 懒加载 +let app = null + +module.exports = async (req, res) => { + if (!app) { + await generateConfig() + app = await constructServer() + } + return app(req, res) +} + +// Vercel判定 +if (!process.env.VERCEL) { + require('./app.js') +} diff --git a/server.js b/server.js index 45dce9a..280d06a 100644 --- a/server.js +++ b/server.js @@ -456,5 +456,6 @@ async function serveNcmApi(options) { module.exports = { serveNcmApi, + constructServer, getModulesDefinitions, }