質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

gulp

gulpは、Node.jsをベースとしたタスク自動化ツールの一つ。ストリームでファイルを処理することが特徴です。CSSプリプロセッサの使用時のコンパイルや、CSS・JavaScriptファイルの圧縮・結合などを自動的に行うことができます。

Q&A

0回答

1333閲覧

gulpのリロードをオートではなく保存したときのみに変更したい

KKsall

総合スコア25

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

gulp

gulpは、Node.jsをベースとしたタスク自動化ツールの一つ。ストリームでファイルを処理することが特徴です。CSSプリプロセッサの使用時のコンパイルや、CSS・JavaScriptファイルの圧縮・結合などを自動的に行うことができます。

0グッド

0クリップ

投稿2021/10/05 01:30

gulpfile.jsのファイル監視がオート設定のため保存するとターミナルとブラウザがずっと更新され続けます。
保存したときだけに変更したいのですがどこを変更すればいいでしょうか?

// gulpfile.js const gulp = require('gulp'), bs = require('browser-sync'), changed = require('gulp-changed'), plumber = require('gulp-plumber'), gulpSass = require('gulp-sass'), sourcemaps = require('gulp-sourcemaps'), bourbon = require('node-bourbon'), gulpPostcss = require('gulp-postcss'), autoprefixer = require('autoprefixer'), stylelint = require('stylelint'), rename = require('gulp-rename'), sortMediaQueries = require("node-css-mqpacker"), gulpImagemin = require('gulp-imagemin'), mozjpeg = require('imagemin-mozjpeg'), pngquant = require('imagemin-pngquant'), ejs = require('gulp-ejs'), fs = require('fs'), del = require('del'), notify = require('gulp-notify'), htmlbeautify = require("gulp-html-beautify"), webpackStream = require("webpack-stream"), webpack = require("webpack"); const setting = { prefixer: { cascade: false, grid: "autoplace" }, srcDir: 'docroot/html/', //ソースコードの存在するベースのディレクトリ destDir: 'docroot/html/', //コンパイル後に出力するベースのディレクトリ destRoot: 'docroot/html/', //出力するドキュメントルート jsonDir: 'docroot/_json/', //json格納ディレクトリ tmplDir: 'docroot/_templates/', assetSrcDir: 'docroot/_src/', // アセットファイルのソースディレクトリ assetDistDir: 'docroot/html/assets/', // アセットファイルの出力先ディレクトリ webpack: require("./webpack.config") }; bourbon.with('assets/css/**/*.css', setting.assetSrcDir + 'scss/**/*.scss'); const ejs_src = [ setting.tmplDir + "page/**/*.ejs" ]; const json_src = JSON.parse(fs.readFileSync(setting.jsonDir + 'config.json')); /** * SCSS整形 */ const lintSass = () => { return gulp .src(setting.assetSrcDir + 'scss/**/*.scss', { since: gulp.lastRun(lintSass) }) .pipe(plumber()) .pipe(gulpPostcss([ stylelint({ fix: true, // reporters: [ // { formatter: "string", console: true } // ] }) ], {syntax: require('postcss-scss')})) .pipe(gulp.dest(setting.assetSrcDir + 'scss')); } exports.lintSass = lintSass; /** * SCSSコンパイル * @returns {*} */ const sassCompile = () => { const processors = [ autoprefixer(setting.prefixer), sortMediaQueries() ]; return gulp.src([ setting.assetSrcDir + 'scss/**/*.scss', '!' + setting.assetSrcDir + 'scss/lib-admin/**/*.scss' ]) .pipe(plumber({errorHandler: notify.onError("Error: <%= error.message %>")})) .pipe(sourcemaps.init()) .pipe(gulpSass({ includePaths: bourbon.includePaths, outputStyle: 'expanded' })) .pipe(gulpPostcss(processors)) .pipe(sourcemaps.write('./maps')) .pipe(gulp.dest(setting.assetDistDir + 'css')); }; exports.sassCompile = sassCompile; /** * 画像圧縮 */ const imageMin = () => { return gulp .src(setting.assetSrcDir + 'img/**') // .pipe(changed(setting.assetDistDir + 'img')) .pipe( gulpImagemin([ pngquant({ quality: [.60, .70], // 画質 speed: 1 // スピード }), mozjpeg({quality: 65}), // 画質 gulpImagemin.svgo(), gulpImagemin.optipng(), gulpImagemin.gifsicle({optimizationLevel: 3}) // 圧縮率 ]) ) .pipe(gulp.dest(setting.assetDistDir + 'img')); } exports.imageMin = imageMin; /** * 圧縮済み画像全削除 */ const imageDel = () => { return del(setting.assetDistDir + 'img') } exports.imageDel = imageDel; /** * ejs task */ const ejsCompile = () => { return gulp.src(ejs_src) .pipe(plumber({errorHandler: notify.onError("Error: <%= error.message %>")})) .pipe(ejs({json: json_src})) .pipe(rename({extname: '.html'})) .pipe(htmlbeautify({ "indent_size": 4, "indent_char": " ", "max_preserve_newlines": 0, "preserve_newlines": false, "extra_liners": [], })) .pipe(gulp.dest(setting.destDir)); } exports.ejsCompile = ejsCompile; /** * 出力されたHTML全削除 */ const htmlDel = () => { return del(setting.destDir + '*.html') } exports.htmlDel = htmlDel; /** * Webpack JSトランスパイル * @returns {*} */ const webpackJs = () => { // webpackStreamの第2引数にwebpackを渡す return webpackStream(setting.webpack, webpack) .pipe(gulp.dest(setting.assetDistDir + 'js')); }; exports.webpackJs = webpackJs; /** * オートリロード * @param done - コールバック */ const sync = done => { const initObj = { port: 8080, server: setting.destRoot, reloadOnRestart: true, notify: false, ghostMode: false }; bs.init(initObj); done(); }; const browserReload = done => { bs.reload(); done(); console.log('Browser reload completed'); }; /** * ファイル監視 * @param done - コールバック */ const watchFiles = done => { gulp.watch([setting.assetSrcDir + 'img/**/*'], {interval: 500}, gulp.series(imageMin, browserReload)); gulp.watch([setting.assetSrcDir + 'js/**/*.js'], {interval: 500}, gulp.series(webpackJs, browserReload)); gulp.watch([setting.tmplDir + '**/*.ejs'], {interval: 500}, gulp.series(ejsCompile, browserReload)); gulp.watch([ setting.assetSrcDir + 'scss/**/*.scss', '!' + setting.assetSrcDir + 'scss/lib-admin/**/*.scss' ], {interval: 200}, gulp.series(lintSass, sassCompile, browserReload)); done(); }; /** * デフォルト処理 */ exports.default = gulp.series( gulp.parallel( gulp.series(lintSass, sassCompile), gulp.series(htmlDel, ejsCompile), sync ), watchFiles );

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問