小白学 VUE 系列之Node.js Path 模块

Node.js Path 模块

Node.js path 模块提供了一些用于处理文件路径的小工具。node 默认内置了path,所以不需要安装

路径说明

  • ../ 表示当前文件所在的目录的上一级
  • ./ 表示当前文件所在的目录
  • / 表示站点的根目录

方法

path.basename(p[, ext]) 返回文件名字,可忽略后缀。

var path=require('path');

console.log(path.basename('/heibaiketang/demo/a.html','')); //> a.html
console.log(path.basename('/heibaiketang/demo/a.html','.html')); //> a

path.dirname(p) 路径中代表文件夹的部分

var string='c:\\a\\b.html';
console.log(path.dirname(string));//c:\a

path.extname(p) 返回路径中文件的后缀名

var string='c:\\a\\b.html';
console.log(path.extname(string));//.html

path.isAbsolute(path) 判断参数 path 是否是绝对路径。

var string='./a\\b.html';
console.log(path.isAbsolute(string));//false
var string='c:\\a\\b.html';
console.log(path.isAbsolute(string));//true

path.join([path1][, path2][, ...]) 用于连接路径。该方法的主要用途在于,会正确使用当前系统的路径分隔符,Unix系统是"/",Windows系统是"\"。

console.log(path.join('c:/','d','\e','a.html'));//c:\d\e\a.html

path.normalize(path) 转成标准路径

var path=require('path');

var a='./a/bc';
console.log(path.normalize(a));//a\bc

var a2='../a/bc';
console.log(path.normalize(a2));//..\a\bc

var a3='c:/a/bc';
console.log(path.normalize(a3));//c:\a\bc

var a4='c:/a/../bc';
console.log(path.normalize(a4));//c:\bc

path.resolve([from ...], to)

将 to 参数解析为绝对路径,给定的路径的序列是从右往左被处理的,后面每个 path 被依次解析,直到构造完成一个绝对路径。 例如,给定的路径片段的序列为:/foo、/bar、baz,则调用 path.resolve('/foo', '/bar', 'baz') 会返回 /bar/baz。

console.log(path.resolve('foot','bar','./tar','baz'));//D:\www\website\2020\vue\rem\foot\bar\tar\baz
console.log(path.resolve('foot','bar','../tar','baz'));//D:\www\website\2020\vue\rem\foot\tar\baz
console.log(path.resolve('foot','/bar','./tar','baz'));//D:\bar\tar\baz
console.log(path.resolve('foot','/bar','./tar','/baz'));//D:\baz

path.parse(pathString) 将路径转成对象

console.log(path.parse('/home/user/aa.html'));

{
  root: '/',
  dir: '/home/user',
  base: 'aa.html',
  ext: '.html',
  name: 'aa'
}

console.log(path.parse('C:/home/user/aa.html'));

{
  root: 'C:/',
  dir: 'C:/home/user',
  base: 'aa.html',
  ext: '.html',
  name: 'aa'
}

path.format(pathObject) 将对象转出路径字符串

var a={
  root: 'C:/',
  dir: 'C:/home/user',
  base: 'aa.html',
  ext: '.html',
  name: 'aa'
}

console.log(path.format(a));//C:/home/user\aa.html

path.relative(from, to) 用于将绝对路径转为相对路径,返回从 from 到 to 的相对路径(基于当前工作目录)

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

属性

path.delimiter 平台的分隔符, ; or ':'.,代表一个字符常量,分割字符,自动自适应

window

var string='c:/aa/;d:/bb;e:/'
console.log(string.split(path.delimiter));//[ 'c:/aa/', 'd:/bb', 'e:/' ]

path.sep 平台的文件路径分隔符,'\' 或 '/'。

附加Node常量

__dirname 路径文件夹

console.log(__dirname);//D:\www\website\2020\vue\rem
console.log(__filename);//D:\www\website\2020\vue\rem\main.js

__filename 路径文件名

评论区 (0)

没有记录
支持 markdown,图片截图粘贴拖拽都可以自动上传。