目前为止,我已经按照自己的意愿使所有东西都运转良好(这包括监测我想要的所有文件并在更改时进行刷新),除了我希望能够修改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']);
};
关于我的设置,有一件奇怪的事情我想要提到:当我运行grunt watch --verbose
时,我发现它同时监控了.git
和.sass-cache
。这是正确的吗?我不知道我做了什么使它这样。
Watching .git for changes.
Watching .sass-cache for changes.
spawn: false
对我无效,但使用spawn: true
就可以正常工作了 - 感谢 Ben。 - butterbrot'.tmp/apps/**/*.{css,js}'
,现在改成了'.tmp/apps/**/*.css', '.tmp/apps/**/*.js'
以实现 CSS 的热重载。 - Michael Allan Jackson