2018-04-26 path
1: node的五种路径分类 _dirname filename process.cwd() . ../
_dirname:代表当前运行的文件所在的路径,只到文件夹 不带文件名
filename:代表当前运行文件所在的路径包括文件名字 以及路径
process.cwd():代表当前node命令所在的目录
2: path的常用api
1)path.normalize 把路径标准化
const path = require('path');
console.log(path.normalize('/foo/bar//baz/asdf/quux/..'));
输出结果:
/foo/bar/baz/asdf
2)path.join 接受多个参数 将参数拼成一个路径
const path = require('path');
console.log(path.join('dist', 'task.js'));
输出结果:
dist/task.js
规则:
1.传入的参数是字符串的路径片段,可以是一个,也可以是多个
2.返回的是一个拼接好的路径,但是根据平台的不同,他会对路径进行不同的规范化,举个例子,Unix系统是”/“,Windows系统是”\“,那么你在两个系统下看到的返回结果就不一样。
3.如果返回的路径字符串长度为零,那么他会返回一个'.',代表当前的文件夹。
4.如果传入的参数中有不是字符串的,那就直接会报错
3)path.parse 传入一个路径 返回一个文件对象
const path = require('path');
console.log(path.parse('/Users/laihuamin/Documents/richEditor/editor'));
{ root: '/',
dir: '/Users/laihuamin/Documents/richEditor',
base: 'editor',
ext: '',
name: 'editor'}
1.root:代表根目录
2.dir:代表文件所在的文件夹
3.base:代表整一个文件
4.name:代表文件名
5.ext: 代表文件的后缀名
4)path.basename() 传入一个路径 返回一个文件名字
例子1: const path = require('path');
console.log(path.basename('/Users/laihuamin/Documents/richEditor/editor/src/task.js'));
输出结果: task.js
例子2;
const path = require('path')
console.log(path.basename('/Users/laihuamin/Documents/richEditor/editor/src/task.js', '.js'));
输出结果; task
5)path.dirname 接收一个文件路径 返回这个文件所在的目录
6) path.extname 接收一个文件名 返回一个后缀
7)path.resolve 接受多个参数 相当于一个接着一个执行cd指令
const path = require('path');
console.log(path.resolve('/foo/bar', '/bar/faa', '..', 'a/../c'));
输出结果: /bar/c
cd/foo/bar/ //这是第一步, 现在的位置是/foo/bar/cd/bar/faa
//这是第二步,这里和第一步有区别,他是从/进入的,也就时候根目录,现在的位置是/bar/faacd..
//第三步,从faa退出来,现在的位置是 /barcda/../c
//第四步,进入a,然后在推出,在进入c,最后位置是/bar/c
8)path.relative 接收两个路径 返回从第一个路径到第二个路径的相对路径
const path = require('path');
console.log(path.relative('src/bar/baz', 'src/aaa/bbb'));
输出结果: ../../aaa/bbb