是 Node 本身提供的一个核心模块,专门用来处理路径。
path.basename
获取一个路径的文件名部分 | |
---|---|
path.dirname
path.extname
| 获取文件后缀名 | |
文件路径操作
process.cwd
:返回当前工作目录的绝对路径/Users/wangjiayan/Desktop/mycode/源码阅读/lerna
path.parse
:返回路径的属性{
root: "/",
dir: "/Users/wangjiayan/Desktop/mycode/源码阅读",
base: "lerna",
ext: "",
name: "lerna",
}
**path.join**
:把一段路径拼接起来。- 如果没传入path,则将返回
'.'
,表示当前工作目录。path.join('/foo', 'bar', 'baz/asdf', 'quux', '..');
// Returns: '/foo/bar/baz/asdf'
- 如果没传入path,则将返回
**path.resolve**
:把一段段路径解析成绝对路径,拼接的过程就是从左到右执行**cd**
的过程。- 如果没传入path,则返回当前工作目录的绝对路径。 ```javascript
path.resolve(‘wwwroot’, ‘static_files/png/‘, ‘../gif/image.gif’); // If the current working directory is /home/myself/node, // this returns ‘/home/myself/node/wwwroot/static_files/gif/image.gif’
- `**path.relative**`,上面`**path.resolve**`返回的是绝对路径,这里返回的是`**path.resolve**`解析出来的相对路径。
- `[**pkg-dir**](https://www.npmjs.com/package/pkg-dir)`**:给定一个目录,返回包含**`**package.json**`**的根目录。**
这个库的暴露方式也很有意思,除了`module.exports.default`之外,还可以挂载其他方法`module.exports.sync`
```javascript
module.exports = pkgDir;
// TODO: Remove this for the next major release
module.exports.default = pkgDir;
module.exports.sync = cwd => {
const filePath = findUp.sync('package.json', {cwd});
return filePath && path.dirname(filePath);
};
[**findUp**](https://www.npmjs.com/package/find-up)
: 向上找某个某个文件,返回路径[**locatePath**](https://www.npmjs.com/package/locate-path)
:返回包含当前路径名[**path-exists**](https://www.npmjs.com/package/path-exists)
: 检查路径是否存在。ensureFileSync:确保路径存在,不存在的话,就创建文件夹。
glob
glob,global 的简写,使用通配符来匹配大量文件。
[glob ](https://github.com/isaacs/node-glob)
无限遍历目录
import * as glob from 'glob';// 可以无限遍历目录
export const load = (folder: string, options: LoadOptions = {}): KoaRouter => {
const extname = options.extname || '.{js,ts}'
// 把folder目录下的以js,ts结尾的文件都引入进来
glob.sync(require('path').join(folder, `./**/*${extname}`)).forEach((item) => require(item))
return router
}