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

Node.js 16部署Azure App Service时导入JSON文件遇Unexpected identifier错误

解决Node.js 16.13.1部署Azure App Service的JSON导入语法错误

问题原因

Node.js 16.x版本中,import ... assert {type: "json"}属于实验性语法特性,默认并未启用,Azure App Service的默认Node启动环境不会自动加载该实验性标志,导致语法解析失败。

解决方案

方案1:启用实验性JSON模块标志

修改Azure App Service的启动命令,添加--experimental-json-modules参数:

  1. 登录Azure门户,进入你的App Service实例
  2. 导航至「配置」→「常规设置」
  3. 在「启动命令」输入框中,替换为包含标志的启动命令(假设你的入口文件是index.js):
    node --experimental-json-modules index.js
    
  4. 保存配置并重启App Service

方案2:改用非实验性方式读取JSON文件

如果不想依赖实验性特性,推荐使用Node.js内置模块读取JSON:

  • CommonJS环境(package.json无"type": "module"):
    const fs = require('fs');
    const myToken = JSON.parse(fs.readFileSync('./MyToken.json', 'utf8'));
    
  • ES模块环境(package.json有"type": "module"):
    import fs from 'fs/promises';
    const myToken = JSON.parse(await fs.readFile('./MyToken.json', 'utf8'));
    

方案3:升级Node.js版本(可选)

如果可以升级,Node.js 17.1+开始assert {type: "json"}不再是实验性特性,默认支持。你可以在Azure App Service的「配置」→「常规设置」中切换Node.js版本至17.x或更高(需确认你的应用兼容新版本)。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 12:50:24