Node.js:如何以跨平台方式获取当前工作目录(CWD)
Node.js 跨平台获取当前工作目录
在Node.js中,跨平台获取当前工作目录无需额外依赖,直接用内置API就能实现:
方法1:process.cwd()(获取进程当前工作目录)
这是最常用的方案,process.cwd() 会返回Node.js进程当前的工作目录,完全兼容Windows、Linux、macOS等所有平台。
示例代码:
const currentWorkingDir = process.cwd(); console.log('当前工作目录:', currentWorkingDir);
方法2:__dirname(获取当前模块文件所在目录)
如果需要的是当前执行的模块文件所在的物理目录(而非进程工作目录),可以用__dirname。注意这是CommonJS模块的内置变量,ES模块需要用以下方式替代:
CommonJS示例
console.log('当前模块所在目录:', __dirname);
ES模块替代方案
import { fileURLToPath } from 'url'; import { dirname } from 'path'; const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); console.log('当前模块所在目录:', __dirname);
两者关键区别
process.cwd():返回进程启动时的工作目录,若进程运行中通过process.chdir()切换目录,它的值会同步变化。__dirname:返回当前模块文件的物理目录,不受进程工作目录变更的影响。
内容的提问来源于stack exchange,提问作者jebarpg
相关产品推荐
相关产品推荐

