node 项目中 __dirname / __filename 是什么,为什么有时候不能用?
2023-12-28 19:38:30
__dirname
是 Node.js 中的一个特殊变量,表示当前执行脚本所在的目录的绝对路径。
__filename 同理,是 Node.js 中的一个特殊变量,表示当前执行脚本的绝对路径,包括文件名。
在 Node.js 中,__dirname
?/ __filename是一个全局变量,可在任何地方使用,用于获取当前模块文件所在的目录路径。它不是由用户定义的,而是由 Node.js 运行时提供的。使用 __dirname/
__filename 可以方便地构建文件的绝对路径 / 获取带有绝对路径的文件名,而不受当前工作目录的影响。
为什么有时候不能用?__dirname
/ __filename?
因为?__dirname
是一个全局变量,而不是一个模块的属性。因此,在 CommonJS 模块中,你可以直接使用 __dirname
,但在 ES6 模块中,__dirname
和 __filename
不再被支持,你需要使用 import.meta.url
来获取当前模块的 URL 信息。
如果你的项目中 package.json 中有?"type": "module", 这个字段那么你就不能直接使用?__dirname /?
__filename 了。
去掉 package.json 里面的"type": "module",就可以正常用了。
文章来源:https://blog.csdn.net/qq_17335549/article/details/135276143
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!