diff --git a/packages/cli/bin/merkur.mjs b/packages/cli/bin/merkur.mjs index 60ae8d85..bb2db2f6 100755 --- a/packages/cli/bin/merkur.mjs +++ b/packages/cli/bin/merkur.mjs @@ -29,20 +29,6 @@ const verboseOption = new Option('--verbose', 'Verbose mode which show debug inf program .name('merkur') .description('CLI for Merkur framework.') - // .option('--writeToDisk', 'Write built files to disk.') - // .option('--sourcemap', 'Generate sourcemap.') - // .option('--runTasks [runTasks...]', 'Run only defined tasks.') - // .option('--outFile ', 'Server out file configuration in es-build.') - // .option('--port ', 'Widget server port.') - // .option('--devServerPort ', 'Dev server port.') - // .option('--projectFolder ', 'Project folder.') - // .option('--buildFolder ', 'Build folder.') - // .option('--staticFolder ', 'Static folder.') - // .option('--staticPath ', 'The static path for dev server and widget server.') - // .option('--hasRunDevServer', 'Flag for starting dev server') - // .option('--hasRunWidgetServer', 'Flag for starting widget server') - // .option('--inspect', 'Debugging widget server') - // .option('--verbose', 'Verbose mode which show debug information.') .version(packageFile.version); program.command(COMMAND_NAME.DEV) diff --git a/packages/cli/src/buildConfig.mjs b/packages/cli/src/buildConfig.mjs index 9fd04eab..848f37e4 100644 --- a/packages/cli/src/buildConfig.mjs +++ b/packages/cli/src/buildConfig.mjs @@ -1,4 +1,5 @@ import { readdir } from 'node:fs/promises'; +import path from 'node:path'; import manifestPlugin from 'esbuild-plugin-manifest'; @@ -39,7 +40,7 @@ export async function createBuildConfig({ // Alias alias: { - '@widget': `${projectFolder}/src/widget.js`, + '@widget': path.resolve(`${projectFolder}/src/widget.js`), ...definition.build.alias, }, @@ -91,14 +92,14 @@ async function getEntries({ merkurConfig, cliConfig }) { }; try { - const files = await readdir(`${cliConfig.projectFolder}/src/entries/`); + const files = await readdir(path.resolve(`${cliConfig.projectFolder}/src/entries/`)); const FILENAMES = ['client', 'server']; files.forEach((file) => { FILENAMES.forEach((filename) => { if (file.startsWith(filename)) { entries[filename] = [ - `${cliConfig.projectFolder}/src/entries/${file}`, + path.resolve(`${cliConfig.projectFolder}/src/entries/${file}`), ]; } }); diff --git a/packages/cli/src/devServer.mjs b/packages/cli/src/devServer.mjs index db6c801a..b51478fe 100644 --- a/packages/cli/src/devServer.mjs +++ b/packages/cli/src/devServer.mjs @@ -116,14 +116,14 @@ export async function runDevServer({ context, merkurConfig, cliConfig }) { } const devClient = isDevCommand - ? fs.readFileSync(`${cliFolder}/../lib/devClient.mjs`, 'utf8') + ? fs.readFileSync(path.resolve(`${cliFolder}/../lib/devClient.mjs`), 'utf8') : ''; const playgroundTemplate = ejs.compile( fs.readFileSync(template, 'utf8'), { views: [ - `${projectFolder}/server/playground/templates/`, + path.resolve(`${projectFolder}/server/playground/templates/`), path.dirname(template), templateFolder, ], diff --git a/packages/cli/src/merkurConfig.mjs b/packages/cli/src/merkurConfig.mjs index dd18234b..3d7a1063 100644 --- a/packages/cli/src/merkurConfig.mjs +++ b/packages/cli/src/merkurConfig.mjs @@ -16,10 +16,10 @@ export async function createMerkurConfig({ cliConfig, context, args } = {}) { try { logger.debug( - `Load merkur config on path ${projectFolder}/${MERKUR_CONFIG_FILE}`, + `Load merkur config on path ${path.resolve(`${projectFolder}/${MERKUR_CONFIG_FILE}`)}`, ); - const file = await import(`${projectFolder}/${MERKUR_CONFIG_FILE}`); + const file = await import(path.resolve(`${projectFolder}/${MERKUR_CONFIG_FILE}`)); merkurConfig = await file.default({ cliConfig, context, @@ -28,6 +28,7 @@ export async function createMerkurConfig({ cliConfig, context, args } = {}) { }); } catch (error) { logger.error(error); + process.exit(1); } cliConfig = { ...cliConfig, ...(merkurConfig?.cliConfig ?? {}), ...args }; @@ -101,7 +102,7 @@ emitter.on( folder: 'es13', build: { platform: 'browser', - outdir: `${staticFolder}/es13`, + outdir: path.resolve(`${staticFolder}/es13`), plugins: [devPlugin], }, }, @@ -111,7 +112,7 @@ emitter.on( build: { platform: 'browser', target: 'es2018', - outdir: `${staticFolder}/es9`, + outdir: path.resolve(`${staticFolder}/es9`), }, }, }; @@ -172,8 +173,8 @@ emitter.on( EMITTER_EVENTS.MERKUR_CONFIG, function defaultEntries({ merkurConfig, cliConfig }) { merkurConfig.defaultEntries = { - client: [`${cliConfig.projectFolder}/src/entries/client.js`], - server: [`${cliConfig.projectFolder}/src/entries/server.js`], + client: [path.resolve(`${cliConfig.projectFolder}/src/entries/client.js`)], + server: [path.resolve(`${cliConfig.projectFolder}/src/entries/server.js`)], ...merkurConfig.defaultEntries, }; @@ -185,8 +186,8 @@ emitter.on( EMITTER_EVENTS.MERKUR_CONFIG, function playground({ merkurConfig, cliConfig }) { merkurConfig.playground = { - template: `${cliConfig.cliFolder}/templates/playground.ejs`, - templateFolder: `${cliConfig.cliFolder}/templates`, + template: path.resolve(`${cliConfig.cliFolder}/templates/playground.ejs`), + templateFolder: path.resolve(`${cliConfig.cliFolder}/templates`), path: '/', widgetHandler: async (req) => { const { protocol, host } = merkurConfig.widgetServer; diff --git a/packages/cli/src/plugins/metaPlugin.mjs b/packages/cli/src/plugins/metaPlugin.mjs index dc376442..5716e6a5 100644 --- a/packages/cli/src/plugins/metaPlugin.mjs +++ b/packages/cli/src/plugins/metaPlugin.mjs @@ -1,4 +1,5 @@ import fs from 'node:fs/promises'; +import path from 'node:path'; import { createLogger } from '../logger.mjs'; import { time } from '../utils.mjs'; @@ -31,7 +32,7 @@ export function metaPlugin({ definition, config, cliConfig }) { metaInformation = await Promise.all( generatedFiles.map(async (file) => { - const stat = await fs.stat(`${projectFolder}/${file}`); + const stat = await fs.stat(path.resolve(`${projectFolder}/${file}`)); return { stat, file }; }),