mirror of
https://github.com/hanzoai/postcss.git
synced 2026-09-24 17:01:56 +00:00
80 lines
2.1 KiB
JavaScript
80 lines
2.1 KiB
JavaScript
let gulp = require('gulp')
|
|
|
|
gulp.task('clean', () => {
|
|
let del = require('del')
|
|
return del(['lib/*.js', 'postcss.js', 'build/', 'api/'])
|
|
})
|
|
|
|
// Build
|
|
|
|
gulp.task('compile', () => {
|
|
let sourcemaps = require('gulp-sourcemaps')
|
|
let changed = require('gulp-changed')
|
|
let babel = require('gulp-babel')
|
|
return gulp.src('lib/*.es6')
|
|
.pipe(changed('lib', { extension: '.js' }))
|
|
.pipe(sourcemaps.init())
|
|
.pipe(babel())
|
|
.pipe(sourcemaps.write())
|
|
.pipe(gulp.dest('lib'))
|
|
})
|
|
|
|
gulp.task('build:lib', gulp.series('compile', () => {
|
|
return gulp.src(['lib/*.js', 'lib/*.d.ts']).pipe(gulp.dest('build/lib'))
|
|
}))
|
|
|
|
gulp.task('build:package', () => {
|
|
let editor = require('gulp-json-editor')
|
|
return gulp.src('./package.json')
|
|
.pipe(editor(json => {
|
|
delete json.babel
|
|
delete json.scripts
|
|
delete json.jest
|
|
delete json.babel
|
|
delete json.eslintConfig
|
|
delete json['size-limit']
|
|
delete json['pre-commit']
|
|
delete json['lint-staged']
|
|
delete json.yaspeller
|
|
delete json.devDependencies
|
|
delete json.browserslist
|
|
delete json.husky
|
|
return json
|
|
}))
|
|
.pipe(gulp.dest('build'))
|
|
})
|
|
|
|
gulp.task('build:docs', () => {
|
|
let ignore = require('fs').readFileSync('.npmignore').toString()
|
|
.trim().split(/\n+/)
|
|
.concat([
|
|
'package.json', '.npmignore', 'lib/*', 'test/*', 'CONTRIBUTING.md',
|
|
'node_modules/**/*', 'docs/api.md', 'docs/plugins.md', '*-cn.md',
|
|
'docs/writing-a-plugin.md', 'coverage', 'coverage/*', 'coverage/**/*'
|
|
]).map(i => '!' + i)
|
|
return gulp.src(['**/*'].concat(ignore))
|
|
.pipe(gulp.dest('build'))
|
|
})
|
|
|
|
gulp.task('build', gulp.series(
|
|
'clean',
|
|
gulp.parallel('build:lib', 'build:docs', 'build:package')
|
|
))
|
|
|
|
// Tests
|
|
|
|
gulp.task('version', () => {
|
|
let Processor = require('./lib/processor')
|
|
let instance = new Processor()
|
|
let pkg = require('./package')
|
|
if (pkg.version !== instance.version) {
|
|
throw new Error('Version in Processor is not equal to package.json')
|
|
} else {
|
|
return Promise.resolve()
|
|
}
|
|
})
|
|
|
|
// Common
|
|
|
|
gulp.task('default', gulp.series('build', 'version'))
|