当前位置: 首页 > 面试题库 >

使用--experimental-modules标志时,节点中__dirname的替代方法

云瑞
2023-03-14
问题内容

--experimental-modules在运行节点应用程序时使用该标志以使用ES6模块。

但是,当我使用此标志时,该元变量__dirname不可用。是否存在另一种方法来获取__dirname与该模式兼容的存储在其中的相同字符串?


问题答案:

从Node.js 10.12开始,有一种替代方案,不需要跨平台创建多个文件并处理文件名中的特殊字符:

import { dirname } from 'path';
import { fileURLToPath } from 'url';

const __dirname = dirname(fileURLToPath(import.meta.url));


 类似资料:
  • 问题内容: 我已经安装了Node 8.9.1(v10.5.0中发生了同样的问题)。 我正在尝试使用带有文件的npm包中的命名导入 我跑: 我得到: 语法错误:所请求的模块“ lodash”未在ModuleJob._instantiate(内部/模块/esm/module_job.js:80:21)处提供名为“ throttle”的导出 应该停止在v10 LTS中进行实验,那么为什么没有更多的模块作

  • 问题内容: 从节点手册中,我可以使用来获得文件的目录,但是从REPL中,这似乎是未定义的。这是我的误解还是错误在哪里? 问题答案: 仅在脚本中定义。在REPL中不可用。 尝试制作脚本 并运行它: 您将看到打印。 添加了背景说明:表示“此脚本的目录”。在REPL中,您没有脚本。因此,将没有任何实际意义。

  • 随着Hibernate 5.2.2中Criteria类中createCriteria()的弃用,它的许多相关函数无法再使用。我找到了标准的另一种用法。createAlias(String,String)和从以下链接添加限制在Hibernate 5中弃用了createCriteria方法,但我找不到如何在JPA criteria中替换criteria中可用的以下函数: 请给我提供一种使用JPA标准A

  • 我使用下面的程序,当我运行它时,我得到了以下错误,我可以运行应用程序,但当我把浏览器本地主机:3000我在控制台得到了这个错误... 这是一个程序,我有一个非常简单的节点应用程序,只有一个文件,代码如下(这是我的服务器/app/.js 另一件事...当我使用这个代码时,我得到了错误... 这就是现在的错误,知道吗?

  • ECM modules不能完全替代CommonJS modules吗? 我看很多项目中既有ESM modules,也有CommonJS modules,为什么不能统一使用ECM modules呢? 参与项目的人的个人喜好不同?用什么都是可以的,最终可能用到的代码都会被打包整合在一起。 兼容以前用CommonJS module写的内容?但是 import也是可以导入CommonJS module的,

  • 我试图在我的项目中使用spring data redis。当我在yaml文件中配置redis节点时,比如: 然后,spring-data-redis在内部为集群创建JedisConnectionFactory。但是如果我尝试通过以下方式配置: 然后,我必须在我的应用程序中为集群创建JedisConnectionFactory的bean。 我猜当前版本的spring-data-redis不支持在ya