From 95df856f0a37048301218cf98b842e651b4bff91 Mon Sep 17 00:00:00 2001 From: dongwa <783137663@qq.com> Date: Thu, 19 May 2022 14:02:18 +0800 Subject: [PATCH] fix: fix lancher.ts --- src/build.ts | 4 ++++ src/launcher.ts | 36 +++++++++++++++++++++++++++++++++--- 2 files changed, 37 insertions(+), 3 deletions(-) diff --git a/src/build.ts b/src/build.ts index ed045bb..78ecf62 100644 --- a/src/build.ts +++ b/src/build.ts @@ -112,6 +112,7 @@ export async function build(opts: BuildOptions): Promise { // } // } // Read nuxt.config.js + const quasarConfigName = 'quasar.config.js'; const quasarConfigFile = getQuasarConfig(entrypointPath); // Read options from nuxt.config.js otherwise set sensible defaults // const staticDir = @@ -223,6 +224,9 @@ export async function build(opts: BuildOptions): Promise { 'vercel__bridge.js': new FileFsRef({ fsPath: require('@vercel/node-bridge'), }), + [quasarConfigName]: new FileFsRef({ + fsPath: path.resolve(entrypointPath, quasarConfigName), + }), // ...serverDistFiles, ...distFils, ...nodeModules, diff --git a/src/launcher.ts b/src/launcher.ts index 8dfcb9f..873e105 100644 --- a/src/launcher.ts +++ b/src/launcher.ts @@ -1,15 +1,45 @@ import path from 'path'; -import { getQuasarConfig } from './utils'; // Create bridge and start listening const { Server } = require('http') as typeof import('http'); // eslint-disable-line import/order const { Bridge } = require('./vercel__bridge.js') as typeof import('@vercel/node-bridge/bridge'); let listener: any; - +let quasarConfig; +const loaders = [ + { name: 'jiti', args: [] }, + { + name: 'esm', + args: [ + module, + { + cjs: { + dedefault: true, + }, + }, + ], + }, +]; +for (const { name, args } of loaders) { + try { + const load = require(name)(...args); + const config = load('./quasar.config.js')({ + dev: false, + prod: true, + }); + quasarConfig = config.default || config; + break; + } catch (err) { + if (name === 'esm') { + throw new Error( + `Could not load Quasar configuration. Make sure all dependencies are listed in package.json dependencies or in serverFiles within builder options:\n ${err}` + ); + } + } +} +console.log('quasar.congfig.js:', quasarConfig); try { process.chdir(__dirname); - const quasarConfig = getQuasarConfig(__dirname); if (!process.env.PROT) process.env.PROT = quasarConfig.ssr.prodProd as any; if (!process.env.NODE_ENV) process.env.NODE_ENV = 'production';