# 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

logo

# @agds/gulp-config-preset **版本** :1.0.4 构建npm包的gulp配置 ## 快速开始 ### 安装 ```bash npm i -D @agds/gulp-config-preset ``` ### 引入 ```js // gulpfile.js const gulpPreset = require('@agds/gulp-config-preset'); exports.default = gulpPreset(); ``` ### 添加build脚本 在`package.json`的`scripts`下添加build命令; ```json { "scripts": { "build": "gulp", "prepublishOnly": "npm run build" } } ``` ## API文档 ### gulppreset(options) ⇒ 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 锦阳 ## 请维护者喝杯咖啡
## 加入钉钉群讨论或加入开发