小昱个人博客
欢迎来到小昱的世界

勤学如春起之苗,不见其增,日有所长;辍学如磨刀之石,不见其损,日有所亏
nodejs之path详解
  • 首页 > Node.js
  • 作者:小昱
  • 2017年6月23日 16:42 星期五
  • 浏览:135
  • 字号:
  • 评论:0
  • 最近在做一个vue的项目, 需要使用webpack打包,在里面看见引入了path这个模块,开始不清楚这个模块出自于什么地方,有什么作用,经过一番查询,发现其来自于nodejs的path模块。

    一、概述

    path 模块提供了一些工具函数,用于处理文件与目录的路径。可以通过以下方式使用:

    const path = require('path');

    二、相关API

    path.basename(pathStr)

    path.basename(pathStr) 返回一个 path 的最后一部分,如:

    file = path.basename('C:\\temp');
    console.log(file); // temp
    file = path.basename('C:\\temp\\myfile.html');
    console.log(file); // myfile.html
    // 返回除指定扩展名外的文件名
    file = path.basename('C:\\temp\\myfile.html', '.html');
    console.log(file); // myfile

    path.win32 属性提供了 path 方法针对 Windows 的实现。path.win32.basename(pathStr) 用于替代 path.basename(pathStr)

    如:

    file = path.win32.basename('C:\\temp');
    console.log(file); // temp
    file = path.win32.basename('C:\\temp\\myfile.html');
    console.log(file); // myfile.html
    // 返回除指定扩展名外的文件名
    file = path.win32.basename('C:\\temp\\myfile.html', '.html');
    console.log(file); // myfile

    path.dirname(pathStr)

    path.dirname(pathStr) 方法返回一个 path 的目录名

    console.log(path.dirname('C:\\temp\\myfile.html'));
    // 返回当前路径的父目录
    console.log(path.dirname(__dirname));
    // __dirname代表当前路径
    console.log(__dirname);

    输出环境变量

    process.env.PATH; // 返回当前操作系统环境变量,返回字符串
    // path.delimiter 提供平台特定的路径分隔符
    /*
    Windows 上是 ;
    POSIX 上是 :
    */
    process.env.PATH.split(path.delimiter); // 使用环境变量分隔符分隔,返回数组

    path.extname(pathStr)

    path.extname(pathStr) 返回 pathStr 的扩展名

    ext = path.extname('index.html');
    console.log(ext); // .html

    path.format(obj)

    path.format(obj) 从一个对象返回一个路径字符串

    file = {
      dir: 'C:\\path\\dir',
      base: 'file.txt'
    }
    res = path.format(file);
    console.log(res);

    path.isAbsolute(pathStr)

    path.isAbsolute(pathStr) 判定 path 是否为一个绝对路径

    path.isAbsolute('//server');    // true
    path.isAbsolute('\\\\server');  // true
    path.isAbsolute('C:/foo/..');   // true
    path.isAbsolute('C:\\foo\\..'); // true
    path.isAbsolute('bar\\baz');    // false
    path.isAbsolute('bar/baz');     // false
    path.isAbsolute('.');           // false

    path.join(...paths)

    path.join(...paths) 使用平台特定的分隔符把全部给定的 path 片段连接到一起,并规范化生成的路径。

    res = path.join(__dirname, 'test', 'dist');
    console.log(res);

    path.normalize(pathStr)

    path.normalize(pathStr) 方法会规范化给定的 pathStr,并解析 '..' 和 '.' 片段。

    res = path.normalize('C:\\temp\\\\foo\\bar\\..\\'); // 返回: 'C:\\temp\\foo\\'
    console.log(res);

    path.parse(pathStr)

    path.parse(pathStr) 方法返回一个对象,对象的属性表示 pathStr 的元素。

    res = path.parse('C:\\path\\dir\\file.txt');
    // console.log(res);
    /*
    { 
      root: 'C:\\',
      dir: 'C:\\path\\dir',
      base: 'file.txt',
      ext: '.txt',
      name: 'file' 
    }
    */

    path.relative(from, to)

    path.relative(from, to) 方法返回从 from 到 to 的相对路径。

    res = path.relative('/data/orandea/test/aaa', '/data/orandea/impl/bbb');
    console.log(res);

    path.resolve([...paths])

    path.resolve([...paths]) 方法会把一个路径或路径片段的序列解析为一个绝对路径。

    res = path.resolve('/wwwroot', 'static_files/png/', '../gif/image.gif');
    console.log(res);
    res = path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif');
    console.log(res);
    res = path.resolve(__dirname, 'static_files/png/', '../gif/image.gif');
    console.log(res);

    path.sep

    path.sep提供了平台特定的路径片段分隔符

    res = 'foo/bar/baz'.split(path.sep);
    console.log(res);
    res = 'foo\\bar\\baz'.split(path.sep);
    console.log(res);
    /*
    Windows 上是 \
    POSIX 上是 /
    */


      您阅读这篇文章共花了:  
    二维码加载中...
    本文作者:小昱      文章标题: nodejs之path详解
    本文地址:http://www.xiaoyulive.top/?post=98
    版权声明:若无注明,本文皆为“小昱个人博客”原创,转载请保留文章出处。
    返回顶部| 首页| 碰碰手气| 捐赠支持| 手机版本|后花园

    Copyright © 2016-2017 小昱个人博客 滇ICP备16006294号