🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## Path 模块 path模块提供了一些用于处理文件路径的小工具 Windows 与 POSI(可移植操作系统接口, Portable Operating System Interface of UNIX) path 模块会因操作系统的差异而不同。 比如在 Windows 上,path 模块会认为使用的是 Windows 风格的路径。 例如,对文件路径 C:\temp\myfile.html 使用 path.basename(),在 POSIX 上与在 Windows 上会产生不同的结果 在 POSIX 上: ~~~ path.basename('C:\\temp\\myfile.html'); // 返回: 'C:\\temp\\myfile.html' ~~~ 在 Windows 上: ~~~ path.basename('C:\\temp\\myfile.html'); // 返回: 'myfile.html' ~~~ 要想在任何操作系统上处理 Windows 文件路径时获得一致的结果,可以使用 path.win32: 在 POSIX 和 Windows 上: ~~~ path.win32.basename('C:\\temp\\myfile.html'); // 返回: 'myfile.html' ~~~ 如果想在任何操作系统上处理 POSIX 文件路径时获得一致的结果,则使用 path.posix: 在 POSIX 和 Windows 上: ~~~ path.posix.basename('/tmp/myfile.html'); // 返回: 'myfile.html' ~~~ 1.path.basename ~~~ path.basename('/foo/bar/baz/asdf/quux.html'); // 返回: 'quux.html' path.basename('/foo/bar/baz/asdf/quux.html', '.html'); // 返回: 'quux' ~~~ 2.path.dirname(path) ~~~ path.dirname('/foo/bar/baz/asdf/quux'); // 返回: '/foo/bar/baz/asdf' ~~~ 3.path.extname(path) ~~~ path.extname('index.html'); // 返回: '.html' path.extname('index.coffee.md'); // 返回: '.md' path.extname('index.'); // 返回: '.' path.extname('index'); // 返回: '' path.extname('.index'); // 返回: '' ~~~ 4.path.format(pathObject) ~~~ // 如果指定了 `dir`、`root` 和 `base`,则返回 `${dir}${path.sep}${base}`。 // `root` 会被忽略。 path.format({ root: '/ignored', dir: '/home/user/dir', base: 'file.txt' }); // 返回: '/home/user/dir/file.txt' // 如果没有指定 `dir`,则使用 `root`。 // 如果只指定了 `root` 或 `dir` 等于 `root`,则不会包含分隔符。 // `ext` 会被忽略。 path.format({ root: '/', base: 'file.txt', ext: 'ignored' }); // 返回: '/file.txt' // 如果没有指定 `base`,则使用 `name` + `ext`。 path.format({ root: '/', name: 'file', ext: '.txt' }); // 返回: '/file.txt' ~~~ 5.path.isAbsolute(path) ~~~ path.isAbsolute('/foo/bar'); // true path.isAbsolute('/baz/..'); // true path.isAbsolute('qux/'); // false path.isAbsolute('.'); // false ~~~ 6.path.join([...paths]) ~~~ path.join('/foo', 'bar', 'baz/asdf', 'quux', '..'); // 返回: '/foo/bar/baz/asdf' path.join('foo', {}, 'bar'); // 抛出 'TypeError: Path must be a string. Received {}' ~~~ 7.path.parse(path) ~~~ path.parse('/home/user/dir/file.txt'); ~~~ 8.path.resolve([...paths]) ~~~ path.resolve('/foo/bar', './baz'); // 返回: '/foo/bar/baz' path.resolve('/foo/bar', '/tmp/file/'); // 返回: '/tmp/file' path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif'); // 如果当前工作目录是 /home/myself/node,则返回 '/home/myself/node/wwwroot/static_files/gif/image.gif' ~~~ 9.path.normalize ~~~ path.normalize('/foo/bar//baz/asdf/quux/..'); // 返回: '/foo/bar/baz/asdf' ~~~ ~~~ path.normalize('C:\\temp\\\\foo\\bar\\..\\'); // 返回: 'C:\\temp\\foo\\' ~~~