# nbugs-ship-cdn

ship web assets to the CDN mirror server

## Usage

建议 `nbugs-ship-cdn` 用于与 `package.json` 文件相同目录下执行，因为它会读出 `package.json` 文件的 `name` 和 `version` 作为参数。

将单个文件发布到 CDN 源站：

```
nbugs-ship-cdn public/index.js
```

将多个文件发布到 CDN 源站：

```
nbugs-ship-cdn "public/**"
```

手动设置参数：

```
nbugs-ship-cdn "**/*" --name nbugs --version 1.0.0 --force
```


通过 node 模块编写自定义脚本：

```javascript
const shipCDN = require('nbugs-ship-cdn');

// 设置发布选项
const options = {
  // 项目名称
  name: "nbugs",
  // 项目版本
  version: "1.0.0",
  // 是否可以覆盖
  force: false, // overwrite flag
  // 单个文件发送前的回调函数
  itemBeforeShip: () => {},
  // 单个文件的发布回调函数
  itemCallback: () => {}
}

// ship 单个文件
shipCDN(__dirname + '/index.js', options);

// 使用数组 ship 多个文件
shipCDN([__dirname + '/index.js', __dirname + '/index.css'], options);

// 使用 glob 语法 ship 多文件
shipCDN.ship(__dirname + '/**', options);

// ship 回调
shipCDN.ship(file, options, (err, result) => {
});
```

## Changelog

### v2.0.0

* 使用 async 框架限制每次同时上传的文件个数最大为 5 个
* 记录上传过程中出错的文件，任务完成之后，如果文件上传出错，1 秒钟后会对出错的文件进行重试，最多重试 3 次
* 增加 eslint 语法检查
