hexo/node_modules/hexo-fs/README.md

166 lines
4.2 KiB
Markdown

# hexo-fs
[![Build Status](https://travis-ci.org/hexojs/hexo-fs.svg?branch=master)](https://travis-ci.org/hexojs/hexo-fs)
[![NPM version](https://badge.fury.io/js/hexo-fs.svg)](https://www.npmjs.com/package/hexo-fs)
[![Coverage Status](https://img.shields.io/coveralls/hexojs/hexo-fs.svg)](https://coveralls.io/r/hexojs/hexo-fs?branch=master)
[![Build status](https://ci.appveyor.com/api/projects/status/github/hexojs/hexo-fs?svg=true)](https://ci.appveyor.com/project/tommy351/hexo-fs/branch/master)
[![dependencies Status](https://david-dm.org/hexojs/hexo-fs/status.svg)](https://david-dm.org/hexojs/hexo-fs)
[![devDependencies Status](https://david-dm.org/hexojs/hexo-fs/dev-status.svg)](https://david-dm.org/hexojs/hexo-fs?type=dev)
File system module for [Hexo].
## Features
- Support for both Promise and callback interface.
- Use [graceful-fs] to avoid EMFILE error and various improvements.
- Use [chokidar] for consistent file watching.
## Installation
``` bash
$ npm install hexo-fs --save
```
## Usage
``` js
const fs = require('hexo-fs');
```
> Some methods in the original fs module are not listed below, but they're available in hexo-fs.
### exists(path)
Test whether or not the given `path` exists by checking with the file system.
### existsSync(path)
Synchronous version of `fs.exists`.
### mkdirs(path)
Creates a directory and its parent directories if they does not exist.
### mkdirsSync(path)
Synchronous version of `fs.mkdirs`.
### writeFile(path, data, [options])
Writes data to a file.
Option | Description | Default
--- | --- | ---
`encoding` | File encoding | utf8
`mode` | Mode | 438 (0666 in octal)
`flag` | Flag | w
### writeFileSync(path, data, [options])
Synchronous version of `fs.writeFile`.
### appendFile(path, data, [options])
Appends data to a file.
Option | Description | Default
--- | --- | ---
`encoding` | File encoding | utf8
`mode` | Mode | 438 (0666 in octal)
`flag` | Flag | w
### appendFileSync(path, data, [options])
Synchronous version of `fs.appendFile`.
### copyFile(src, dest, [callback])
Copies a file from `src` to `dest`.
### copyDir(src, dest, [options])
Copies a directory from `src` to `dest`. It returns an array of copied files.
Option | Description | Default
--- | --- | ---
`ignoreHidden` | Ignore hidden files | true
`ignorePattern` | Ignore files which pass the regular expression |
### listDir(path, [options])
Lists files in a directory.
Option | Description | Default
--- | --- | ---
`ignoreHidden` | Ignore hidden files | true
`ignorePattern` | Ignore files which pass the regular expression |
### listDirSync(path, [options])
Synchronous version of `fs.listDir`.
### readFile(path, [options])
Reads the entire contents of a file.
Option | Description | Default
--- | --- | ---
`encoding` | File encoding | utf8
`flag` | Flag | r
`escape` | Escape UTF BOM and line ending in the content | true
### readFileSync(path, [options])
Synchronous version of `fs.readFile`.
### emptyDir(path, [options])
Deletes all files in a directory. It returns an array of deleted files.
Option | Description | Default
--- | --- | ---
`ignoreHidden` | Ignore hidden files | true
`ignorePattern` | Ignore files which pass the regular expression |
`exclude` | Ignore files in the array |
### emptyDirSync(path, [options])
Synchronous version of `fs.emptyDir`.
### rmdir(path)
Removes a directory and all files in it.
### rmdirSync(path)
Synchronous version of `fs.rmdir`.
### watch(path, [options])
Watches changes of a file or a directory.
See [Chokidar API](https://github.com/paulmillr/chokidar#api) for more info.
### ensurePath(path)
Ensures the given path is available to use or appends a number to the path.
### ensurePathSync(path)
Synchronous version of `fs.ensurePath`.
### ensureWriteStream(path, [options])
Creates the parent directories if they does not exist and returns a writable stream.
### ensureWriteStreamSync(path, [options])
Synchronous version of `fs.ensureWriteStream`.
## License
MIT
[graceful-fs]: https://github.com/isaacs/node-graceful-fs
[Hexo]: https://hexo.io/
[chokidar]: https://github.com/paulmillr/chokidar