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

Azure Functions如何支持ES6 import/export语法?

当然没问题!2019年的时候Node.js 10已经支持不少ES6特性了,配合Babel完全能在Azure Functions 2.0里用import/export语法,不用再写一堆require。下面是我整理的具体步骤,在VS Code里结合Azure Functions CLI就能顺畅跑起来:

具体配置步骤

1. 初始化项目依赖

首先在你的Azure Functions项目根目录下,先初始化npm(如果还没做的话):

npm init -y

接着安装Babel相关的开发依赖:

npm install --save-dev @babel/core @babel/cli @babel/preset-env babel-plugin-module-resolver

其中@babel/preset-env会帮你适配Node.js 10的运行环境,babel-plugin-module-resolver可以简化模块导入的路径写法。

2. 创建Babel配置文件

在项目根目录新建.babelrc文件,写入以下配置:

{
  "presets": [
    ["@babel/preset-env", {
      "targets": {
        "node": "10"
      }
    }]
  ],
  "plugins": [
    ["module-resolver", {
      "root": ["./src"]
    }]
  ]
}

这个配置告诉Babel按照Node.js 10的标准转译代码,同时把src目录设为模块根目录,方便你导入自己写的文件。

3. 调整项目结构

建议把所有函数代码放到src目录下,比如原来的HttpTrigger文件夹移到src/HttpTrigger。然后在根目录创建dist文件夹,用来存放Babel转译后的代码。

4. 添加转译脚本到package.json

打开package.json,在scripts字段里添加两个脚本:

"scripts": {
  "build": "babel src --out-dir dist",
  "watch": "babel src --out-dir dist --watch"
}
  • npm run build:一次性把src里的代码转译到dist目录
  • npm run watch:监听src目录的文件变化,自动重新转译,适合开发时实时更新

5. 配置Azure Functions CLI指向转译后的代码

在项目根目录新建local.settings.json(如果没有的话),添加以下配置:

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "",
    "FUNCTIONS_WORKER_RUNTIME": "node",
    "AzureWebJobsScriptRoot": "./dist"
  }
}

AzureWebJobsScriptRoot这个配置会告诉Functions CLI,去dist目录找要执行的函数代码。

6. 在VS Code里开发调试

  • 打开VS Code终端,先运行npm run watch,让Babel实时监听代码变化并转译
  • 然后可以用VS Code的Azure Functions插件启动本地调试,或者在终端运行func start,这样CLI就会加载dist里的转译后代码,而你只需要在src目录里用ES6的import/export写代码就行
关键注意点
  • Node.js 10本身对ES模块的支持是实验性的(需要加--experimental-modules参数),所以用Babel转译是更稳妥的方案,避免兼容性问题
  • 函数入口文件要改用export default导出,比如HttpTrigger的写法:
// src/HttpTrigger/index.js
import { AzureFunction, Context, HttpRequest } from "@azure/functions";

const httpTrigger = async function (context, req) {
    // 你的函数逻辑
};

export default httpTrigger;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 05:08:20