node内置模块 path
-
path模块用于对路径和文件进行处理,提供了很多好用的方法。
-
并且我们知道在Mac OS、Linux和window上的路径时不一样的
- window上会使用 \或者 \ \来作为文件路径的分隔符,当然目前也支持 /;
- 在Mac OS、Linux的Unix操作系统上使用 / 来作为文件路径的分隔符;
-
那么如果我们在window上使用 \ 来作为分隔符开发了一个应用程序,要部署到Linux上面应该怎么办呢?
- 显示路径会出现一些问题;
- 所以为了屏蔽他们之间的差异,在开发中对于路径的操作我们可以使用 path 模块;
-
可移植操作系统接口(英语:Portable Operating System Interface,缩写为POSIX)
- Linux和Mac OS都实现了POSIX接口;
- Window部分电脑实现了POSIX接口;
path常见的API
- 从路径中获取信息
- dirname:获取文件的父文件夹;
- basename:获取文件名;
- extname:获取文件扩展名;
- 路径的拼接
- 如果我们希望将多个路径进行拼接,但是不同的操作系统可能使用的是不同的分隔符;
- 这个时候我们可以使用path.join函数;
- 将文件和某个文件夹拼接
- 如果我们希望将某个文件和文件夹拼接,可以使用 path.resolve;
- resolve函数会判断我们拼接的路径前面是否有 /或../或./;
- 如果有表示是一个绝对路径,会返回对应的拼接路径;
- 如果没有,那么会和当前执行文件所在的文件夹进行路径的拼接
演示代码:
const path = require('path');
// 1.获取路径的信息
// const filepath = '/User/why/abc.txt';
// console.log(path.dirname(filepath));
// console.log(path.basename(filepath));
// console.log(path.extname(filepath));
// 2.join路径拼接
const basepath = '../User/why';
const filename = './abc.txt';
const othername = './why.js';
const filepath1 = path.join(basepath, filename);
// console.log(filepath1);
// 3.resolve路径拼接
// resolve会判断拼接的路径字符串中,是否有以/或./或../开头的路径
// const filepath2 = path.resolve(basepath, filename, othername);
// console.log(filepath2);
const basepath2 = '/User/coderwhy';
// const filename2 = '/why/abc.txt'; // /why/abc.txt
// const filename2 = './why/abc.txt'; // /User/coderwhy/why/abc.txt
// const filename2 = 'why/abc.txt'; // /User/coderwhy/why/abc.txt
const filename2 = '../why/abc.txt'; // /User/coderwhy/why/abc.txt
const result = path.resolve(basepath2, filename2);
console.log(result);
在webpack中的使用
在webpack中获取路径或者起别名的地方也可以使用


浙公网安备 33010602011771号