# gulp-cors

> ## 功能 #### 会根据mockDir指定的目录（默认为data目录）下的json文件自动生成接口

Latest version **1.0.1** (published 2018-12-18) · ISC license · 0 weekly downloads

## Install

```sh
npm install gulp-cors
pnpm add gulp-cors
yarn add gulp-cors
bun add gulp-cors
```

Provides the command `mock`.

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.1 |
| Published | 2018-12-18 |
| First published | 2018-12-18 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 23 |
| Unpacked size | 28.3 KB |
| Known vulnerabilities | 0 (+6 in 4 direct dependencies) |
| Install scripts | no |
| Author | zcp |
| Maintainers | zcp2123 |
| Keywords | cors |

## Links

- npm: https://www.npmjs.com/package/gulp-cors
- npm.io page: https://npm.io/package/gulp-cors

## Dependencies (23)

- [rd](https://npm.io/package/rd.md) 0.0.2
- [gulp](https://npm.io/package/gulp.md) ^3.9.0
- [open](https://npm.io/package/open.md) ^0.0.5
- [watch](https://npm.io/package/watch.md) ^0.11.0
- [colors](https://npm.io/package/colors.md) ~1.1.2
- [connect](https://npm.io/package/connect.md) ^3.0.1
- [isarray](https://npm.io/package/isarray.md) 0.0.1
- [mini-lr](https://npm.io/package/mini-lr.md) ^0.1.8
- [request](https://npm.io/package/request.md) ^2.72.0
- [tiny-lr](https://npm.io/package/tiny-lr.md) 0.1.4
- [fs-extra](https://npm.io/package/fs-extra.md) ^0.30.0
- [optimist](https://npm.io/package/optimist.md) ~0.6.1
- [through2](https://npm.io/package/through2.md) ^0.5.1
- [commander](https://npm.io/package/commander.md) ~2.9.0
- [gulp-util](https://npm.io/package/gulp-util.md) ^2.2.19
- [body-parser](https://npm.io/package/body-parser.md) ~1.14.1
- [node.extend](https://npm.io/package/node.extend.md) ^1.0.10
- [serve-index](https://npm.io/package/serve-index.md) ^1.1.4
- [serve-static](https://npm.io/package/serve-static.md) ^1.3.0
- [connect-query](https://npm.io/package/connect-query.md) ^0.2.0
- [proxy-middleware](https://npm.io/package/proxy-middleware.md) ^0.5.0
- [connect-livereload](https://npm.io/package/connect-livereload.md) ^0.4.0
- [connect-multiparty](https://npm.io/package/connect-multiparty.md) ^2.0.0

## Recent versions

- 1.0.1 (latest) — 2018-12-18
- 1.0.0 — 2018-12-18

## README

# gulp-cors

## 功能
#### 会根据mockDir指定的目录（默认为data目录）下的json文件自动生成接口

 >'host + /test'  => response file 'data/test.json'

 >'host + /test.do'  => response file 'data/test.do.json'

#### 支持jsonp

 >'host + /test.jsonp?callback=cb'  => response file 'data/test.jsonp.json'

#### 支持多级目录

 >'host + /class/test'  => response file 'data/class/test.json'

#### get,post请求支持传参返回不同结果

/data/check.do.js:

```javascript
module.exports = {
  params: {id: 123},
  response: './check_one.json'
}
```
or

```javascript
module.exports = [{
  params: {id: 123},
  response: './check_one.json'
}, {
  params: {id: 456},
  response: './check_two.json'
}, {
  params: {id: 789},
  response: {
    name: "three"
  }
}]
```

 >'host + /check.do'  => response file 'data/check.do.js'

 >'host + /check.do?id=123'  => response file 'data/check_one.json'

 >'host + /check.do?id=789'  => response content '{"name":"three"}'

configs:

Key | Type | Default | Description |
--- | --- | --- | --- |
`params` | Object | Null | The parameters of the meet
`delay` | Number | 0 | Request delay time
`route` | String | Null | Request url
`code` | Number  | 200 | Status code (Temporary does not support)
`response` | Object | {} | The data returned

#### support powerful command line
Options:
- -h, --help               output usage information
- -v, --version            output the version number
- -e, --server [mockRoot]  start mock server, such as: mock -e
- -p, --port [port]        server port config, such as: mock -e -p 8000
- -f, --fetch [url]        download remote url to local json file, such as: mock -f http://hostname/api/test.do

#### may be others...

## Install

#### use for gulp
```sh
$ npm install --save-dev gulp-cors
```
#### use for commandline
```sh
$ npm install -g gulp-cors
```

## 使用

### 第一步
新建mock目录 mock

### 第二步
配置:

```js
var gulp = require('gulp');
var mockServer = require('gulp-cors');

gulp.task('mock', function() {
  gulp.src('.')
    .pipe(mockServer({
      mockDir: 'mock'
      port: 8090,
      allowCrossOrigin: 'http://localhost:8888'
    }));
});
```
在mock目录下新建test.do.json文件

### 第三步
访问url => localhost:8090/test.do

## 选项

Key | Type | Default | Description |
--- | --- | --- | --- |
`host` | String | `localhost` | hostname of the webserver
`port` | Number | `8000` | port of the webserver
`path` | String | `/` | path to the webserver
`mockDir` | String | `./data` | mock directory
`livereload` | Boolean/Object | `false` | whether to use livereload. For advanced options, provide an object. You can use the 'port' property to set a custom live reload port and the `filter` function to filter out files to watch. The object also needs to set `enable` property to true (e.g. `enable: true`) in order to activate the livereload mode. It is off by default.
`directoryListing` | Boolean/Object | `false` | whether to display a directory listing. For advanced options, provide an object with the 'enable' property set to true. You can use the 'path' property to set a custom path or the 'options' property to set custom [serve-index](https://github.com/expressjs/serve-index) options.
`fallback` | String | `undefined` | file to fall back to (relative to webserver root)
`open` | Boolean/String | `false` | open the localhost server in the browser. By providing a String you can specify the path to open (for complete path, use the complete url `http://my-server:8080/public/`) .
`proxies` | Array | `[]`| a list of proxy objects.  Each proxy object can be specified by `{source: '/abc', target: 'http://localhost:8080/abc', options: {headers: {'ABC_HEADER': 'abc'}}}`.
`allowCrossOrigin` | Boolean | `false`| whether to allow cross origin calls (CORS)

---
_Source: https://npm.io/package/gulp-cors · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
