首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >__dirname在Node.js 10实验中没有定义?

__dirname在Node.js 10实验中没有定义?
EN

Stack Overflow用户
提问于 2018-05-10 07:49:09
回答 2查看 7.7K关注 0票数 11

我使用的是Node.js 10.0.0 &我的index.mjs如下所示:

代码语言:javascript
复制
import path from "path";

console.log(__dirname);

在我的终点站,我跑

代码语言:javascript
复制
node --experimental-modules index.mjs

我得到了以下错误:

代码语言:javascript
复制
(node:3750) ExperimentalWarning: The ESM module loader is experimental.
ReferenceError: __dirname is not defined
at file:///MyFolderPath/node-10/index.mjs:3:21
at ModuleJob.run (internal/modules/esm/module_job.js:106:14)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-05-10 08:27:57

ESM不是特定于节点的,并且特定于节点的“全局”(如__dirname和模块)将无法工作。预计import.meta将提供合适的替代品。

资料来源: GitHub 问题.

票数 11
EN

Stack Overflow用户

发布于 2022-04-06 10:11:18

ES6模块不定义__dirname。您可以使用下面这样的代码自己定义它。这假设是文件系统上下文,而不是浏览器。

代码语言:javascript
复制
import path from 'path';
const __dirname = path.dirname(new URL(import.meta.url).pathname);

有关细节,请参阅节点参考MDN中的MDN

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50268077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档