关于js的几种路径写法
Node.js中的文件路径大概有 __dirname, __filename, process.cwd(), ./ 或者 ../,前三个都是绝对路径。
关于这几个路径的意思:
1 | __dirname: 获得当前执行文件所在目录的完整目录名 |
我在桌面的一个新建文件夹里新建了如下目录:
1 | 新建文件夹/ |
path.js里有如下代码:
1 | const path = require('path') |
通过cd命令到 C:\Users\Administrator\Desktop\新建文件夹\dir\dir1 目录下,执行
1 | node path.js 或 node ./path.js |
结果为:
1 | __dirname: C:\Users\Administrator\Desktop\新建文件夹\dir\dir1 |
根据这几个路径的含义,这个执行结果是完全正确的。
然后我们cd到 dir目录下执行
1 | node dir1/path.js |
结果为:
1 | __dirname: C:\Users\Administrator\Desktop\新建文件夹\dir\dir1 |
这样看的话感觉./和process.cwd()是一样的,都指向的是运行node命令是的目录。
但是呢,如果是在require(‘./xx.js’)时,这个./指的就不再是node命令的执行路径了,而是以其文件的相对路径
具体还可以查看require的引用规则:require源码解读(阮一峰)
评论