Memo

メモ > 技術 > 開発: Gulp > Gulpの諸々を検証

■Gulpの諸々を検証
必ず使うタスクランナーGulpとGruntの基本コード9選 - ICS MEDIA https://ics.media/entry/9199 ■複数のファイルを一度にコンパイル
const gulp = require('gulp'); const sass = require('gulp-sass'); gulp.task('default', function() { return gulp .src([ 'sass/test1.scss', 'sass/test2.scss' ]) .pipe(sass({ outputStyle: 'expanded' })) .pipe(gulp.dest('dist/css')); });
■複数のファイルをコンパイルして1ファイルに結合 ※要プラグインインストール
>npm install -D gulp-concat
以下のように使用する
const gulp = require('gulp'); const sass = require('gulp-sass'); const concat = require('gulp-concat'); gulp.task('default', function() { return gulp .src([ 'sass/*.scss' ]) .pipe(sass({ outputStyle: 'expanded' })) .pipe(concat('style.css')) .pipe(gulp.dest('dist/css')); });
■CSSファイルから改行などを削除して圧縮 ※要プラグインインストール
>npm install -D gulp-clean-css
以下のように使用する
const gulp = require('gulp'); const sass = require('gulp-sass'); const concat = require('gulp-concat'); const cleanCSS = require('gulp-clean-css'); gulp.task('default', function() { return gulp .src([ 'sass/*.scss' ]) .pipe(sass({ outputStyle: 'expanded' })) .pipe(concat('style.css')) .pipe(cleanCSS()) .pipe(gulp.dest('dist/css')); });
■画像を最適化 ※要プラグインインストール
>npm install -D gulp-imagemin
以下のように使用する 画像は img に保存する
const gulp = require('gulp'); const sass = require('gulp-sass'); const concat = require('gulp-concat'); const cleanCSS = require('gulp-clean-css'); const imagemin = require('gulp-imagemin'); gulp.task('sass', function() { return gulp .src([ 'sass/*.scss' ]) .pipe(sass({ outputStyle: 'expanded' })) .pipe(concat('style.css')) .pipe(cleanCSS()) .pipe(gulp.dest('dist/css')); }); gulp.task('image', function() { return gulp .src([ 'img/*.png' ]) .pipe(imagemin()) .pipe(gulp.dest('dist/img')); }); gulp.task('default', gulp.series( 'sass', 'image' ) );
■TypeScriptをコンパイル ※要プラグインインストール
>npm install -D typescript >npm install -D gulp-typescript
TypeScriptのファイルは ts/test.ts とし、以下を記述しておく
var Message:string; Message = 'Hello TypeScript'; alert(Message);
以下のように使用する
const gulp = require('gulp'); const sass = require('gulp-sass'); const concat = require('gulp-concat'); const cleanCSS = require('gulp-clean-css'); const typescript = require('gulp-typescript'); const imagemin = require('gulp-imagemin'); gulp.task('sass', function() { return gulp .src([ 'sass/*.scss' ]) .pipe(sass({ outputStyle: 'expanded' })) .pipe(concat('style.css')) .pipe(cleanCSS()) .pipe(gulp.dest('dist/css')); }); gulp.task('ts', function() { return gulp .src([ 'ts/*.ts' ]) .pipe(typescript({ target: 'ES5', removeComments: false })) .pipe(gulp.dest('dist/js')); }); gulp.task('image', function() { return gulp .src([ 'img/*.png' ]) .pipe(imagemin()) .pipe(gulp.dest('dist/img')); }); gulp.task('default', gulp.series( 'sass', 'ts', 'image' ) );
■JSファイルから改行などを削除して圧縮 ※要プラグインインストール
>npm install -D gulp-uglify
以下のように使用する
const gulp = require('gulp'); const sass = require('gulp-sass'); const concat = require('gulp-concat'); const cleanCSS = require('gulp-clean-css'); const typescript = require('gulp-typescript'); const uglify = require('gulp-uglify'); const imagemin = require('gulp-imagemin'); gulp.task('sass', function() { return gulp .src([ 'sass/*.scss' ]) .pipe(sass({ outputStyle: 'expanded' })) .pipe(concat('style.css')) .pipe(cleanCSS()) .pipe(gulp.dest('dist/css')); }); gulp.task('ts', function() { return gulp .src([ 'ts/*.ts' ]) .pipe(typescript({ target: 'ES5', removeComments: false })) .pipe(concat('script.js')) .pipe(uglify()) .pipe(gulp.dest('dist/js')); }); gulp.task('image', function() { return gulp .src([ 'img/*.png' ]) .pipe(imagemin()) .pipe(gulp.dest('dist/img')); }); gulp.task('default', gulp.series( 'sass', 'ts', 'image' ) );
■package.json をもとにインストール いつも使うGulpのプラグインをpackage.jsonで一括インストールする | WebMemo https://webmemo.work/gulp-npm-install/ 例えば以前作成した package.json がある場合、その階層で以下を実行することで同じものをインストールできる
>npm install
package.json の内容は、一例だが以下のようなものになる
{ "name": "gulp-test", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC", "devDependencies": { "gulp": "^4.0.2", "gulp-changed": "^4.0.2", "gulp-clean-css": "^4.3.0", "gulp-concat": "^2.6.1", "gulp-imagemin": "^7.1.0", "gulp-plumber": "^1.2.1", "gulp-sass": "^4.1.0", "gulp-typescript": "^6.0.0-alpha.1", "gulp-uglify": "^3.0.2", "typescript": "^4.0.5" } }

Advertisement