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

使用DefaultAzureCredential()连接Azure Blob Storage时出现SyntaxError: Identifier '__dirname' has already been declared错误

使用DefaultAzureCredential()连接Azure Blob Storage时出现SyntaxError: Identifier '__dirname' has already been declared错误

我之前也碰到过类似的坑,给你几个实用的排查和解决思路:

  • 先检查代码里的重复声明:这个错误核心就是__dirname被重复定义了。你可以翻一遍自己的代码,看看是不是在某个地方用const __dirname = ...或者let __dirname = ...又声明了一次,要是有的话,删掉重复的那行就行。毕竟在Node.js环境里,__dirname是默认提供的全局变量,不需要手动声明。

  • 排查Azure SDK和Meteor的兼容性:有些版本的Azure Blob Storage SDK可能和Meteor的模块加载机制不太兼容。你可以试试降级或者升级SDK的版本,找一个经过社区验证能和Meteor配合的稳定版本。

  • 换一种方式获取路径:如果一定要用到当前模块的路径,别直接用__dirname,可以用import.meta.url来替代,比如这样写:

    const path = require('path');
    const __filename = new URL(import.meta.url).pathname;
    const __dirname = path.dirname(__filename);
    

    记得哦,这段代码只能在服务端用,Meteor客户端环境不支持这个写法。

  • 确认Azure SDK的运行环境:Azure的Blob Storage SDK主要是给服务端用的,别在客户端代码里引用它。要是不小心在客户端加载了,很可能会触发这类路径或者变量相关的错误,把相关代码移到服务端文件里试试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 17:42:58