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

Node.js Azure Function中无法导入Chalk包的问题求助

解决Azure Functions中Chalk包导入失败的问题

问题根源

Chalk从v5版本起完全转为ES模块,不再支持CommonJS的require()直接导入;而Azure Functions默认将.js文件识别为CommonJS模块,这导致了导入方式不兼容的问题。

解决方案

方案1:使用动态导入并正确处理Promise

动态导入import()返回的是Promise,需用await获取模块对象,同时Chalk的默认导出在模块的.default属性中:

module.exports = async (ctx, req) => {
    const chalkModule = await import('chalk');
    const chalk = chalkModule.default;
    console.log(chalk.blue('Hello world!'));
    ctx.res = { body: '操作完成' };
}

方案2:将项目转为ES模块

  1. 在项目根目录创建或修改package.json,添加"type": "module":
{
  "type": "module"
}
  1. 修改index.js为ES模块写法,注意导出方式改为export default:
import chalk from 'chalk';

export default async (ctx, req) => {
    console.log(chalk.blue('Hello world!'));
    ctx.res = { body: '操作完成' };
}

注意:需确保Azure Functions使用的Node.js版本为14及以上(推荐16+),以支持ES模块特性。

方案3:降级Chalk到v4版本

Chalk v4同时兼容CommonJS和ES模块,无需修改代码结构:

  1. 安装指定版本:
npm install chalk@4
  1. 使用原require()方式即可:
module.exports = async (ctx, req) => {
    const chalk = require('chalk');
    console.log(chalk.blue('Hello world!'));
    ctx.res = { body: '操作完成' };
}

额外注意

Azure Functions的宿主控制台可能限制ANSI颜色代码的显示,若颜色未生效,可检查宿主环境是否支持彩色日志输出。

内容的提问来源于stack exchange,提问作者user9540234

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 21:45:50