esm中使用__dirname与__filename

ESM中的__dirname  ;  __filename

  1. import.meta.url
    import.meta 包含当前模块的一些信息,其中 import.meta.url 表示当前模块的 file: 绝对路径,拿到这个绝对路径我们就可以配合其他 API 来实现 __filename 和 __dirname。
    console.log(import.meta.url);
    // 运行会得到一个基于 file 协议的 URL:file:///D:/%E5%AD%A6%E4%B9%A0%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/ffPra/demo2/require.js
  2. fileURLToPath
    接下来需要把 file 协议转换成路径,我们需要借助 Node.js 内部 url 模块的 fileURLToPath API。
    import { fileURLToPath } from "node:url";console.log(fileURLToPath(import.meta.url));
    //D:\学习杂七杂八\ffPra\demo2\require.js
  3. __filename; __dirname 
    通过import.meta.url和fileURLToPath我们很容易得到__filename API;

    import { dirname } from "node:path";
    const __filename = fileURLToPath(import.meta.url);//我们已经拿到了__filename的值,实现__dirname,借助Node.js的内部模块path的dirname方法实现;
    const __dirname = dirname(__filename);
    console.log(__dirname);
    //D:\学习杂七杂八\ffPra\demo2

  4. basename 获取当前文件

    import { basename } from "node:path";const __basename = basename(__filename);
    console.log("__basename:", __basename);
    //__basename: require.js
  5. //join 拼接文件路径

    import { join } from "node:path";
    const newPath = join(__dirname, "new.js");
    console.log(newPath);
    //D:\学习杂七杂八\ffPra\demo2\new.js

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/611910.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

离线安装docker和docker-compose

1.下载 docker Index of linux/static/stable/x86_64/ docker-compose Overview of installing Docker Compose | Docker Docs 2.docker /etc/systemd/system/docker.service [Unit] DescriptionDocker Application Container Engine Documentationhttps://docs.docker.…

6.OpenResty系列之深入理解(二)

1. 日志输出 vim /usr/local/openresty/nginx/conf/nginx.conf默认配置如下 #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info;#pid logs/nginx.pid;http {#log_format main $remote_addr - $remote_user [$time…

回归预测 | Matlab基于SO-LSTM蛇群算法优化长短期记忆神经网络的数据多输入单输出回归预测

回归预测 | Matlab基于SO-LSTM蛇群算法优化长短期记忆神经网络的数据多输入单输出回归预测 目录 回归预测 | Matlab基于SO-LSTM蛇群算法优化长短期记忆神经网络的数据多输入单输出回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab基于SO-LSTM蛇群算法优化…

docker镜像的生成过程

镜像的生成过程 Docker镜像的构建过程,大量应用了镜像间的父子关系。即下层镜像是作为上层镜像的父镜像出现的,下层镜像是作为上层镜像的输入出现。上层镜像是在下层镜像的基础之上变化而来。 FROM centos:7 FROM指令是Dockerfile中唯一不可缺少的命令&a…

RocketMq直接上手(火箭班)

Apache RocketMQ官方文档:https://rocketmq.apache.org/zh/docs/bestPractice/06FAQ/,这里面涵盖了所有的基本知识、各种搭建环境、基础代码测试…还有各种问题总结,很值得自主学习。 1.配置依赖:pom.xml文件 可以只截取maven仓库…

3.3 IMAGE BLUR: A MORE COMPLEX KERNEL

我们研究了vecAddkernel和colorToGreyscaleConversion,其中每个线程只对一个数组元素执行少量算术运算。这些内核很好地服务于其目的:说明基本的CUDA C程序结构和数据并行执行概念。在这一点上,读者应该问一个显而易见的问题——所有CUDA线程…

C++类和对象(万字超详细讲解!!!)

文章目录 前言1.面向过程和面向对象区别2.类的基本概念2.1 类的引入2.2 类的定义2.3 类成员变量的命名规则2.4 类的访问限定符2.5 类的封装2.6 类的作用域2.7 类的实例化 3.类对象模型3.1 如何计算类对象的大小3.2 对齐规则 4.this指针4.1 this指针的引出4.2 this指针的特性4.3…

Android App打包加固后的APK无法安装问题

最近开发的一个应用要上架,正常流程打完包后去加固,由于以前一直用的是360的加固助手,这里开始也是选择用它。 使用360加固: 问题一、开始出现的问题是说应用未签名无法加固,我明明是签名后打的包,怎么会…

2023全球年度安全漏洞TOP 10

数字化转型步伐不断加快,社会各行业迎来了许多发展机遇,但与此同时面临着日益复杂的数据安全和网络安全威胁。其中,安全漏洞数量持续增长更是成为了各行各业不可忽视的挑战,尤其是在工业、金融、交通、国防、医疗和信息技术等领域…

K8S集群调度(2)

schedule的调度算法 预算策略 过滤出合适的节点 优先策略 选择部署的节点 nodeName:硬匹配,不走调度策略。node01. nodeSelector: 根据节点的标签选择,会走调度的算法。 只要是走调度算法,在不满足预算策略的情况下,所有po…

MyBatisPlus学习笔记一

1、简介 MyBatisPlus(简称MP)是一个MyBatis的增强工具,在MyBatisMyBatisMyBatis的的基础上只做增强不做改变,为简化开发,提高效率而生。 官网:MyBatis-Plus mybatisplus通过扫描实体类,并基于…

2-归并排序

算法:归并排序 思想:分治法【问题分解,归并排序递归解决,合并解】 实现:将数组通过递归方式自顶向下的分解至最小单元,再自底向上进行合并,以此实现排序 时间复杂度: Θ ( n l g n )…

老胡的周刊(第123期)

老胡的信息周刊[1],记录这周我看到的有价值的信息,主要针对计算机领域,内容主题极大程度被我个人喜好主导。这个项目核心目的在于记录让自己有印象的信息做一个留存以及共享。 🎯 项目 ai-video-search-engine[2] 随着 TikTok 和 …

206.【2023年华为OD机试真题(C卷)】最大N个数与最小N个数的和(JavaPythonC++JS实现)

🚀点击这里可直接跳转到本专栏,可查阅顶置最新的华为OD机试宝典~ 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目-最大N个数与最小N个数的和二.解题思路三.题解代…

力扣173. 二叉搜索树迭代器

深度优先搜索 思路: 遍历二叉搜索树,左子树总比根节点小,右子树总比根节点大;先深度遍历左子树,然后返回其父节点,然后遍历其右子树节点;使用栈数据结构存储节点数据,借用其“后进先…

空间转录组与单细胞转录组联合分析——MIA,代码分享(Nature Biotechnology :)

​ 原文:Integrating microarray-based spatial transcriptomics and single-cell RNA-seq reveals tissue architecture in pancreatic ductal adenocarcinomas | Nature Biotechnology 研究者采用 MIA 联合 scRNAseq 和 ST 数据,分析原发性胰腺导管腺癌…

2023年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷②

2023年全国职业院校技能大赛(高职组) “云计算应用”赛项赛卷2 目录 需要竞赛软件包环境以及备赛资源可私信博主!!! 2023年全国职业院校技能大赛(高职组) “云计算应用”赛项赛卷2 模块一 …

NX二次开发 Block UI 指定方位控件的应用

一、概述 NX二次开发中一般都是多个控件的组合,这里我首先对指定方位控件进行说明并结合选择对象控件,具体如下图所示。 二、实现功能获取方位其在选择面上原点的目标 2.1 在initialize_cb()函数中进行初始化,实现对象选择过滤面 //过滤平…

Unity中Shader面片一直面向摄像机

文章目录 前言一、实现思路1、 我们要实现模型面片一直跟着摄像机旋转,那么就需要用到旋转矩阵2、确定 原坐标系 和 目标坐标系3、确定旋转后坐标系基向量二、确定旋转后 坐标系基向量 在 原坐标系 下的值1、Z轴基向量2、假设Y轴基向量 和 世界空间下 的Y轴方向一致竖直向上3、…

go study twoday

交换两个数值 package mainimport "fmt"func main() {var num1 intvar num2 float32fmt.Println("请输入一个整数:")if _, err : fmt.Scanln(&num1); err ! nil {fmt.Println("输入错误:", err)return}fmt.Println(&q…