以下是常用的 path 模块方法,具体可参照官网:http://nodejs.cn/api/path.html path.resolve([…paths]) path.join([…paths]) path.extname(path) path.basename(path[, ext]) path.dirname(path) path.format(pathObject)
/** * 将路径或路径片段的序列解析为绝对路径(给定的路径序列从右到左进行处理,每个后续的 path 前置,直到构造出一个绝对路径) * @param {String} ...paths 路径或路径片段的序列 * @return {String} */ 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'
/** * 使用平台特定的分隔符作为定界符将所有给定的 path 片段连接在一起,然后规范化生成的路径 * @param {String} ...paths 路径片段的序列 * @return {String} */ path.join('/foo', 'bar', 'baz/asdf', 'quux', '..'); // 返回: '/foo/bar/baz/asdf' path.join('foo', {}, 'bar'); // 抛出 'TypeError: Path must be a string. Received {}'
/** * 返回 path 的扩展名 * @param {String} path * @return {String} */ path.basename('src/pages/shop/detail.vue');// 返回: '.vue'
/** * 返回 path 的最后一部分 * @param {String} path * @param {String} ext 可选的文件扩展名 * @return {String} */ path.basename('src/pages/shop/detail.vue'); // 返回: 'detail.vue' path.basename('src/pages/shop/detail.vue', '.vue'); // 返回: 'detail'
/** * 返回 path 的目录名 * @param {String} path * @return {String} */ path.dirname('src/pages/shop/detail.vue');// 返回: 'src/pages/shop'
/** * 返回 path 的目录名 * @param {Object} pathObject * { * dir * root * base * name * ext * } * @return {String} */ // 如果提供了 `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'