概述提供一些处理文件路径的小工具参考:varpath=require("path")补充:__dirname和__filename的使用__dirname:是当前文件夹的绝对路径__filename:是当前文件的绝对路径。用于解决文件操作路径的相对路径问题。因为在文件操作中,相对路径是相对于执行node命令的目录,所以为了尽量避免这个问题,建议使用文件操作的相对路径。两者都变成:动态绝对路径常与path.join()和path.resolve()一起使用注意在vue文件中使用和在终端节点中使用的区别varpath=require("path")console.log(path.join(__dirname));console.log(path.join(__filename));//文件所在目录为E:\00vueTest\test.js,直接执行nodetest.js,终端打印如下:E:\00vueTestE:\00vueTest\test.js//在vue文件中使用,打包目录E:\00vueTest\helloworld\dist\js,浏览器打开index.html文件后,会打印如下://index.js下面的代码是在window系统上运行的结果。方法path.normalize(pathStr)规范化路径并处理“..”、“.”和链接中的“/”。多条斜线会换成一条斜线,如果路径末尾包含斜线,则包含斜线注意链接是否包含'..'和'.'//node的执行效果,区别在于浏览器打印主要是/differencepath.normalize("E:/test/a/b/c///d/test.js")//E:\test\a\b\c\d\test.jspath.normalize("E:/test/a//////b/c/d/test.js/")//E:\test\a\b\c\d\test.js\path.normalize("E:/test/a/b/.../c/d/test.js////")//E:\test\a\b\...\c\d\test.js\path.normalize("E:/test/a///b/./c/d/test.js/..")//E:\test\a\b\c\dpath.normalize("E:/test/a/b/../c/d/test.js/.")//E:\test\a\c\d\test.jspath.join(pathStr1,pathStr2,pathStr3)连接路径,多个参数连接它们。当前系统的路径分隔符可以正确使用,Unix系统为“/”,Windows系统为“”。节点执行path.join('test1','static_files/png/','../gif/image.gif')//test1\static_files\gif\image.gifpath.join('//test1','./static_files/png','../gif/image.gif/')//\\test1\static_files\gif\image.gif\path.join('/test1/','./static_files/png','./gif/image.gif')//\test1\static_files\png\gif\image.gifvue打包后的区别是//会变成path.join('//test1','./static_files/png','../gif/image.gif/')///test1/static_files/gif/image.gif/path.resolve([from...],to)节点执行,执行文件路径为E:00vueTesttest.jspath.resolve('/foo/bar','./baz')//E:\foo\bar\bazpath.resolve('bar','baz')//E:\00vueTest\bar\bazpath.resolve('/foo/bar','/baz/baz2/')//E:\baz\baz2path.resolve('//foo/bar','/baz/baz2/')//\\foo\bar\baz\baz2path.resolve('test1','static_files/png/','../gif/image.gif')//E:\00vueTest\test1\static_files\gif\image.gifpath.resolve('test1','./static_files/png','../gif/image.gif')//E:\00vueTest\test1\static_files\gif\image.gifpath.resolve('test1','./static_files/png','../gif/image.gif')//打包执行E:\test1\static_files\gif\image.gifvue就是上面的结果,去掉前面的"E:","E:00vueTest"和后面的path.resolve('//foo/bar','/baz/baz2/')///baz/baz2path.isAbsolute(pathStr)判断参数pathStr是否为绝对路径path.relative(from,to)用于转换绝对路径相对路径的路径,返回从from到to的相对路径(基于当前工作目录)。节点执行,(packaged和vue的区别在于斜杠的方向)path.relative('/data/text/test/aaa','/data/text/impl/bbb')//..\..\impl\bbbpath.dirname(path)返回表示文件夹路径的路径部分。dirname('E:/test/a/b/c/d/test.js')//E:/test/a/b/c/dpath.basename(pathStr,str)pathStr:要处理的路径str:要过滤的字符path.basename('/foo/bar/baz/aaa/bbb.html')//bbb.htmlpath.basename('/foo/bar/baz/aaa/bbb.html','.html')//bbbpath.basename('/foo/bar/baz/aaa/','.html')//aaapath.extname(pathStr)返回路径中文件的后缀,即最后一个'.'之后的部分在路径中。如果路径不包含“.”或者路径只包含一个“.”和这个'。'是路径的第一个字符,此命令返回一个空字符串。path.extname('test.js')//.jspath.extname('test')//path.extname('./test/aaa')//path.parse(pathString)返回一个对象的路径字符串.node终端,vue打包不支持这种方式,报错TypeError:path.parseisnotafunctionpath.parse('E:/test/a/b/c/d/test.js'){root:'E:/',dir:'E:/test/a/b/c/d',base:'test.js',ext:'.js',name:'test'}path.format(pathObject)返回fromobject路径字符串,与path.parse相反。node终端,vue打包不支持该方法,报错TypeError:path.formatisnotafunctionvarpathObject=path.parse('E:/test/a/b/c/d/test.js')path.format(pathObject)//E:/test/a/b/c/d\test.jspropertypath.sep平台的文件路径分隔符,'\'或'/'。path.delimiter平台分隔符,;或':'.path.posix提供上述path的方法,但始终以posix兼容的方式进行交互。path.win32提供上述路径的方法,但始终以win32兼容的方式进行交互。
