You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过命令行参数选择配置文件并在控制台输出结果,同时保持代码模块化?

如何通过命令行参数选择配置文件并在控制台输出结果,同时保持代码模块化?

当然可以实现啦!咱们可以借助Deno的命令行参数机制结合动态导入来达成需求,同时还能维持代码的模块化结构。下面是具体的实现步骤和代码示例:

步骤1:创建多个配置文件

首先,咱们需要为不同的配置创建独立的文件,每个文件导出对应的配置值:

config1.ts

export const data = 'Config1';

config2.ts

export const data = 'Config2';

config3.ts

export const data = 'Config3';

步骤2:重构处理逻辑,解耦配置依赖

原来的process.ts直接绑定了固定的配置文件,咱们把它改成一个通用的处理函数,让它只负责逻辑计算,不依赖具体配置,这样更符合模块化原则:

process.ts

export function processConfig(data: string) {
  return data + ' is used.';
}

步骤3:在主文件中处理命令行参数并动态加载配置

修改main.ts,让它读取命令行参数,根据参数动态导入对应的配置文件,然后调用处理函数输出结果:

main.ts

import { processConfig } from "./process.ts";

// 获取命令行传入的配置名称,Deno.args会返回所有命令行参数的数组
const configName = Deno.args[0];

// 校验参数是否存在
if (!configName) {
  console.error('请指定配置名称,示例:deno run main.ts config1');
  Deno.exit(1); // 退出程序并返回错误码
}

try {
  // 动态导入指定的配置文件
  const { data } = await import(`./${configName}.ts`);
  // 调用处理函数生成结果并输出
  const result = processConfig(data);
  console.log(result);
} catch (error) {
  // 处理配置文件不存在的情况
  console.error(`找不到配置文件 ${configName}.ts`);
  Deno.exit(1);
}

测试效果

现在运行对应的命令就能得到想要的结果啦:

deno run main.ts config1
Config1 is used.

deno run main.ts config2
Config2 is used.

deno run main.ts config3
Config3 is used.

如果没有传入参数或者指定的配置文件不存在,程序还会给出友好的错误提示哦~

备注:内容来源于stack exchange,提问作者Ooker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 14:59:51