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中获取路径或者起别名的地方也可以使用

image

posted @ 2021-06-05 23:57  107w  阅读(94)  评论(0)    收藏  举报