gulpでutf8とshift-jisのどっちも書き出す
utf8とshift-jis、どっちでコーディングされますか?
私はutf8がほとんどです。
そもそもutf8とshift-jisってなんなん?って人に向けて
まずは文字コードをググってください。
私も専門家ではないので詳しく話せませんので…
仕事でShift-jisを使うことがなかったのに…
仕事でshift-jisで納品しなきゃいけないことになってしまった。
早速、gulpでutf8からshift-jisに変換するようにしよーっと
var gulp = require("gulp"), jade = require("gulp-jade"), changed = require("gulp-changed"), crLfReplace = require('gulp-cr-lf-replace'), convertEncoding = require('gulp-convert-encoding'), plumber = require("gulp-plumber"); gulp.task("jade", function() { gulp.src(["src/jade/**/*.jade","!src/jade/**/_*.jade"]) .pipe(plumber({errorHandler: notify.onError('<%= error.message %>')})) .pipe(jade({ pretty: true })) .pipe(changed("dist", {extension: '.html'})) .pipe(crLfReplace({changeCode: "CR+LF"})) .pipe(convertEncoding({to: "shift_jis"})) .pipe(gulp.dest("dist/post")) });
改行コードも指定されてたからCR+LFに変換して、いざ起動〜
shift-jisは文字化けしてしまう〜
…
コンパイルはできたしけど文字化けして何も確認できない!
これだからshift-jisってやつはぁ〜〜
と思ってましたが、
「shift-jisとutf-8と別々で書き出せばいいか」
って、まぁ安直ですが解決法を述べまして。
var gulp = require("gulp"), jade = require("gulp-jade"), changed = require("gulp-changed"), crLfReplace = require('gulp-cr-lf-replace'), convertEncoding = require('gulp-convert-encoding'), browserSync = require("browser-sync"), plumber = require("gulp-plumber"), runSequence = require("run-sequence"); //jade gulp.task("jade", function() { gulp.src(["src/jade/**/*.jade","!src/jade/**/_*.jade"]) .pipe(plumber({errorHandler: notify.onError('<%= error.message %>')})) .pipe(jade({ pretty: true })) .pipe(changed("dist", {extension: '.html'})) .pipe(gulp.dest("dist/utf8")) }); //shift-jis gulp.task("jis", function() { gulp.src(["src/jade/**/*.jade","!src/jade/**/_*.jade"]) .pipe(plumber({errorHandler: notify.onError('<%= error.message %>')})) .pipe(jade({ pretty: true })) .pipe(changed("dist", {extension: '.html'})) .pipe(crLfReplace({changeCode: "CR+LF"})) .pipe(convertEncoding({to: "shift_jis"})) .pipe(gulp.dest("dist/post")) }); // ブラウザリロード gulp.task('reload', function () { browserSync.reload(); }); //監視開始 gulp.task("watch", function() { browserSync.init({ online: true, ui: false, server: { baseDir: "./dist", }, port: 2525 }); gulp.watch(['src/jade/**/*.jade','!src/jade/**/_*.jade'], ["jade","jis","jisPost","reload"]); }); gulp.task('default', function(callback){ return runSequence('clear', 'watch', callback); });
んな感じで簡単に書きまして。
無事にutf8とshift-jisを両方書き出すことができましたと。
もっと簡単なやり方や別のやり方があるのだと思います。
ぜひともそのやり方を教えてもらいたい…