30

これまでのところ、Sass/CSS に変更を加えて更新できるようにしたいこと以外は、すべてが思い通りに機能しています (必要なすべてのファイルを監視し、変更があるたびに更新しています)。ページをロードせずにブラウザーで。大したことではありませんが、ページのやり取りがあった後に何かのスタイルを変更しようとすることがあり、ページが更新された場合はプロセスを最初からやり直す必要があります。

これが可能であることはかなり確信していますが、これまでのところ私にはわかりません。

これが私のものGruntfile.jsです:

module.exports = function(grunt) {

  // Project configuration.
  grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    connect: {
      server: {
        options: {},
      }
    },
    sass: {
      dist: {
        options: {
          style: 'compressed'
        },
        files: {
          'css/main.css': 'css/scss/main.scss',
        }
      }
    },
    jshint: {
      files: ['js/*.js'],
    },
    watch: {
      options: {
        livereload: true,
      },
      html: {
        files: ['index.html'],
      },
      js: {
        files: ['js/**/*.js'],
        tasks: ['jshint'],
      },
      css: {
        files: ['css/scss/**/*.scss'],
        tasks: ['sass'],
      },
    }
  });

  // Actually running things.
  grunt.loadNpmTasks('grunt-contrib-sass');
  grunt.loadNpmTasks('grunt-contrib-watch');
  grunt.loadNpmTasks('grunt-contrib-connect');
  grunt.loadNpmTasks('grunt-contrib-jshint');

  // Default task(s).
  grunt.registerTask('default', ['connect', 'watch']);

};

私のセットアップについて言及したかった奇妙なことの 1 つ: 実行するgrunt watch --verboseと、監視.git.sass-cache. それは正しいと思いますか?それをするために何をしたのかわかりません。

Watching .git for changes.
Watching .sass-cache for changes.
4

1 に答える 1

39

質問の最初の部分は簡単です。ライブ リロードは、構成で指定したファイルのみをリロードします。つまり、sass ファイルを指定すると、再ロードされるファイルになります。Grunt に dist ディレクトリの css ファイルを監視させることで、セットアップでこれを修正しました。これは、Sass が再コンパイルされるたびに明らかに変更されます。

watch: {
  options: {
    livereload: true,
  },
  html: {
    files: ['index.html'],
  },
  js: {
    files: ['js/**/*.js'],
    tasks: ['jshint'],
  },
  sass: {
    options: {
      livereload: false
    },
    files: ['css/scss/**/*.scss'],
    tasks: ['sass'],
  },
  css: {
    files: ['dist/css/master.css'],
    tasks: []
  }
}

2番目の質問についてはよくわかりません。どのプロジェクトでもこれらのディレクトリは表示されませんgrunt watch --verbose。そのコマンドを詳細に実行することはありません。

于 2013-09-25T18:00:38.323 に答える