# gulp-config-preset **Repository Path**: agile-development-system/gulp-config-preset ## Basic Information - **Project Name**: gulp-config-preset - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-05-26 - **Last Updated**: 2022-06-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
Undertaker.TaskFunction
**性质**: 函数
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| options | object
| gulp出入口配置 |
| options.input | string
| gulp构建入口 |
| options.output | string
| gulp构建出口 |
#### gulppreset~clean() ⇒ Promise
清除构建目录
**性质**: [gulppreset
](#gulppreset)的内部方法
#### gulppreset~build() ⇒ merge.Merge2Stream
构建
**性质**: [gulppreset
](#gulppreset)的内部方法
#### gulppreset~cp() ⇒ NodeJS.ReadWriteStream
复制无法构建的文件
**性质**: [gulppreset
](#gulppreset)的内部方法
## 配置源码
```js
const { series, src, dest, parallel } = require('gulp');
const rimraf = require('rimraf');
const babel = require('gulp-babel');
const ts = require('gulp-typescript');
const merge = require('merge2');
const { FastPath, FastFs } = require('@agds/node-utils');
const path = require('path');
/**
* @param {object} options gulp出入口配置
* @param {string} options.input gulp构建入口
* @param {string} options.output gulp构建出口
* @returns {Undertaker.TaskFunction}
*/
function gulppreset({ input = 'src', output = 'lib' } = {}) {
let params = require('@agds/ts-config-js').compilerOptions;
if (FastFs.getPathStatSync(FastPath.getCwdPath('tsconfig.json'))) {
params = 'tsconfig.json';
}
const tsProject = ts.createProject(params);
const _input = FastPath.getCwdPath(input);
const _output = FastPath.getCwdPath(output);
/**
* 清除构建目录
*
* @returns {Promise}
*/
function clean() {
return new Promise((resolve) => rimraf(_output, resolve));
};
/**
* 构建
*
* @returns {merge.Merge2Stream}
*/
function build() {
const tsResult = src(path.join(_input, '**/*.[tj]s'))
.pipe(tsProject());
return merge([
tsResult.dts.pipe(dest(path.join(_output, 'types'))),
tsResult.js.pipe(babel()).pipe(dest(_output)),
]);
}
/**
* 复制无法构建的文件
*
* @returns {NodeJS.ReadWriteStream}
*/
function cp() {
return src(path.join(_input, '**/*.!([tj]s)')).pipe(dest(_output));
}
return series(clean, parallel(build, cp));
}
module.exports = gulppreset;
```
## 许可证
[MIT License](https://gitee.com/agile-development-system/gulp-config-preset/blob/master/LICENSE)
Copyright (c) 2021 锦阳
## 请维护者喝杯咖啡