mirror of
https://github.com/papercss/papercss
synced 2024-06-19 22:25:10 +02:00
Migrate build-tools from gulp to native compilation
This commit is contained in:
parent
6541844c71
commit
55b8ab41e1
38
build/build.js
Normal file
38
build/build.js
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
const path = require('path');
|
||||||
|
const sass = require('sass');
|
||||||
|
const chalk = require('chalk');
|
||||||
|
const write = require('write');
|
||||||
|
const rimraf = require('rimraf');
|
||||||
|
const postcss = require('postcss');
|
||||||
|
const cssnano = require('cssnano');
|
||||||
|
const autoprefixer = require('autoprefixer');
|
||||||
|
|
||||||
|
async function build() {
|
||||||
|
const entrypoint = path.resolve(__dirname, '../src/styles.scss');
|
||||||
|
|
||||||
|
console.log('📦', chalk.cyan('Starting PaperCSS build...'));
|
||||||
|
console.log('📦', chalk.cyan('Cleaning dist/ folder...'));
|
||||||
|
|
||||||
|
rimraf.sync('dist', { disableGlob: true });
|
||||||
|
|
||||||
|
console.log('📦', chalk.cyan('Compiling SCSS to CSS, entrypoint:', entrypoint));
|
||||||
|
|
||||||
|
const compiledCSS = sass.renderSync({ file: entrypoint });
|
||||||
|
|
||||||
|
console.log('📦', chalk.cyan('Applying autoprefixer and cssnano...'));
|
||||||
|
|
||||||
|
const autoprefixedCSS = await postcss([autoprefixer]).process(compiledCSS.css, { from: undefined });
|
||||||
|
const minifiedCSS = await postcss([cssnano]).process(autoprefixedCSS.css, { from: undefined });
|
||||||
|
|
||||||
|
const paperpath = path.resolve(__dirname, '../dist/paper.css');
|
||||||
|
const paperminpath = path.resolve(__dirname, '../dist/paper.min.css');
|
||||||
|
|
||||||
|
console.log('📦', chalk.cyan('Writing paper.css and paper.min.css files...'));
|
||||||
|
|
||||||
|
write(paperpath, autoprefixedCSS.css);
|
||||||
|
write(paperminpath, minifiedCSS.css);
|
||||||
|
|
||||||
|
console.log('📦', chalk.cyan('Build done!'));
|
||||||
|
}
|
||||||
|
|
||||||
|
build();
|
69
gulpfile.js
69
gulpfile.js
|
@ -1,69 +0,0 @@
|
||||||
'use strict';
|
|
||||||
|
|
||||||
const gulp = require('gulp'),
|
|
||||||
sass = require('gulp-sass'),
|
|
||||||
cleanCSS = require('gulp-clean-css'),
|
|
||||||
rename = require('gulp-rename'),
|
|
||||||
exec = require('child_process').execFile,
|
|
||||||
optional = require('optional'),
|
|
||||||
hugo = optional('hugo-bin'),
|
|
||||||
gulpStylelint = optional('gulp-stylelint'),
|
|
||||||
autoprefixer = require('gulp-autoprefixer');
|
|
||||||
|
|
||||||
gulp.task('sass', function() {
|
|
||||||
return gulp.src('src/**/*.scss')
|
|
||||||
.pipe(sass.sync().on('error', sass.logError))
|
|
||||||
.pipe(autoprefixer())
|
|
||||||
.pipe(cleanCSS({format: 'beautify'}))
|
|
||||||
.pipe(rename('paper.css'))
|
|
||||||
.pipe(gulp.dest('dist'))
|
|
||||||
.pipe(gulp.dest('docs/static/assets'));
|
|
||||||
});
|
|
||||||
|
|
||||||
gulp.task('watch', function () {
|
|
||||||
gulp.watch('src/**/*.scss', gulp.series('sass'));
|
|
||||||
});
|
|
||||||
|
|
||||||
gulp.task('hugo-server', function (cb) {
|
|
||||||
const flags = ['server', '--source=docs', '--disableFastRender'];
|
|
||||||
let hugo_process = exec(hugo, flags, function (err, stdout, stderr) {
|
|
||||||
console.log(stderr);
|
|
||||||
return err ? cb(err) : cb();
|
|
||||||
});
|
|
||||||
|
|
||||||
hugo_process.stdout.pipe(process.stdout);
|
|
||||||
return hugo_process;
|
|
||||||
})
|
|
||||||
|
|
||||||
gulp.task('hugo-build', function (cb) {
|
|
||||||
const flags = ['--source=docs'];
|
|
||||||
let hugo_process = exec(hugo, flags, function (err, stdout, stderr) {
|
|
||||||
console.log(stderr);
|
|
||||||
return err ? cb(err) : cb();
|
|
||||||
});
|
|
||||||
|
|
||||||
hugo_process.stdout.pipe(process.stdout);
|
|
||||||
return hugo_process;
|
|
||||||
})
|
|
||||||
|
|
||||||
gulp.task('minify-css', () => {
|
|
||||||
return gulp.src('src/**/*.scss')
|
|
||||||
.pipe(sass({outputStyle: 'compressed'}).on('error', sass.logError))
|
|
||||||
.pipe(autoprefixer())
|
|
||||||
.pipe(rename('paper.min.css'))
|
|
||||||
.pipe(gulp.dest('dist'))
|
|
||||||
.pipe(gulp.dest('docs/static/assets'));
|
|
||||||
});
|
|
||||||
|
|
||||||
gulp.task('lint-css', function() {
|
|
||||||
return gulp.src('src/**/*.scss')
|
|
||||||
.pipe(gulpStylelint({
|
|
||||||
reporters: [
|
|
||||||
{ formatter: 'string', console: true },
|
|
||||||
],
|
|
||||||
}));
|
|
||||||
})
|
|
||||||
|
|
||||||
gulp.task('default', gulp.series('sass', 'minify-css', 'hugo-server'));
|
|
||||||
gulp.task('build', gulp.series('sass', 'minify-css', 'hugo-build'));
|
|
||||||
gulp.task('postinstall', gulp.series('sass', 'minify-css'));
|
|
6790
package-lock.json
generated
6790
package-lock.json
generated
File diff suppressed because it is too large
Load diff
39
package.json
39
package.json
|
@ -2,13 +2,14 @@
|
||||||
"name": "papercss",
|
"name": "papercss",
|
||||||
"version": "1.7.0",
|
"version": "1.7.0",
|
||||||
"description": "The less formal CSS framework.",
|
"description": "The less formal CSS framework.",
|
||||||
"main": "index.js",
|
"main": "dist/paper.css",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "node node_modules/gulp/bin/gulp.js",
|
"build": "node ./build/build.js",
|
||||||
"build": "node node_modules/gulp/bin/gulp.js build",
|
"hugo:build": "hugo -D --source=docs",
|
||||||
"test": "echo \"Error: no test specified\" && exit 1",
|
"hugo:serve": "hugo server --source=docs --disableFastRender",
|
||||||
"postinstall": "gulp postinstall",
|
"lint": "npm run stylelint",
|
||||||
"stylelint": "node node_modules/stylelint/bin/stylelint.js 'src/**/*.scss'"
|
"start": "npm run hugo:serve",
|
||||||
|
"stylelint": "stylelint 'src/**/*.scss'"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
@ -20,27 +21,13 @@
|
||||||
"url": "https://github.com/papercss/papercss/issues"
|
"url": "https://github.com/papercss/papercss/issues"
|
||||||
},
|
},
|
||||||
"homepage": "https://www.getpapercss.com",
|
"homepage": "https://www.getpapercss.com",
|
||||||
"dependencies": {
|
|
||||||
"gulp": "^4.0.0",
|
|
||||||
"gulp-autoprefixer": "^6.0.0",
|
|
||||||
"gulp-clean-css": "3.9.0",
|
|
||||||
"gulp-connect": "^5.6.1",
|
|
||||||
"gulp-plumber": "1.1.0",
|
|
||||||
"gulp-rename": "1.2.2",
|
|
||||||
"gulp-sass": "^3.1.0",
|
|
||||||
"optional": "^0.1.4"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"autoprefixer": "^9.8.6",
|
||||||
"browserify": "^14.1.0",
|
"browserify": "^14.1.0",
|
||||||
"chai": "^4.1.2",
|
"chai": "^4.1.2",
|
||||||
"gulp-less": "^4.0.1",
|
"chalk": "^4.1.0",
|
||||||
"gulp-plumber": "1.1.0",
|
"cssnano": "^4.1.10",
|
||||||
"gulp-rename": "1.2.2",
|
|
||||||
"gulp-sass": "^3.1.0",
|
|
||||||
"gulp-stylelint": "6.0.0",
|
|
||||||
"gulp-watch-less": "1.0.1",
|
|
||||||
"http-server": "^0.11.1",
|
"http-server": "^0.11.1",
|
||||||
"hugo-bin": "^0.37.0",
|
|
||||||
"install": "0.10.1",
|
"install": "0.10.1",
|
||||||
"jake": "^8.0.15",
|
"jake": "^8.0.15",
|
||||||
"jshint": "^2.9.6",
|
"jshint": "^2.9.6",
|
||||||
|
@ -57,11 +44,14 @@
|
||||||
"npm": "^6.4.1",
|
"npm": "^6.4.1",
|
||||||
"object-merge": "^2.5.1",
|
"object-merge": "^2.5.1",
|
||||||
"os": "^0.1.1",
|
"os": "^0.1.1",
|
||||||
|
"postcss": "^7.0.32",
|
||||||
"pre-commit": "^1.2.2",
|
"pre-commit": "^1.2.2",
|
||||||
"procfile": "^0.1.1",
|
"procfile": "^0.1.1",
|
||||||
"quixote": "^0.14.0",
|
"quixote": "^0.14.0",
|
||||||
"request": "^2.83.0",
|
"request": "^2.83.0",
|
||||||
"requirejs": "^2.3.5",
|
"requirejs": "^2.3.5",
|
||||||
|
"rimraf": "^3.0.2",
|
||||||
|
"sass": "^1.26.10",
|
||||||
"semver": "^5.3.0",
|
"semver": "^5.3.0",
|
||||||
"shelljs": "^0.7.6",
|
"shelljs": "^0.7.6",
|
||||||
"simplebuild-jshint": "^1.3.0",
|
"simplebuild-jshint": "^1.3.0",
|
||||||
|
@ -71,7 +61,8 @@
|
||||||
"stylelint-config-standard": "18.0.0",
|
"stylelint-config-standard": "18.0.0",
|
||||||
"stylelint-order": "0.8.0",
|
"stylelint-order": "0.8.0",
|
||||||
"stylelint-scss": "2.2.0",
|
"stylelint-scss": "2.2.0",
|
||||||
"webpack-dev-server": "^3.1.10"
|
"webpack-dev-server": "^3.1.10",
|
||||||
|
"write": "^2.0.0"
|
||||||
},
|
},
|
||||||
"pre-commit": [
|
"pre-commit": [
|
||||||
"stylelint"
|
"stylelint"
|
||||||
|
|
Loading…
Reference in a new issue