javascript - gruntjs 不能在 sass 上正常运行

标签 javascript css sass gruntjs

现在已经调试了几个小时..

livereload 在我保存我的 .html 文件时有效,但对我的 .scss 无效,我在下面的配置中做错了吗? Chrome 的终端和控制台没有错误显示。

module.exports = function(grunt) {
    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
        watch: {
            sass: {
                files: ['components/sass/*.{scss,sass}'],
                tasks: ['sass']
            },
            livereload: {
                files: ['*.html', '*.php', 'js/**/*.{js,json}', 'css/*.css','img/**/*.{png,jpg,jpeg,gif,webp,svg}'],
                options: {
                    livereload: true
                }
            }
        },
        sass: {
            options: {
                sourceMap: true,
                outputStyle: 'compressed'
            },
            files: {
                'css/styles.css': 'components/sass/styles.scss'
            }
        }
    });
    grunt.registerTask('default', ['sass', 'watch']);
    grunt.loadNpmTasks('grunt-sass');
    grunt.loadNpmTasks('grunt-contrib-watch');
}

最佳答案

同时将 options.livereload 添加到您的 watch.sass 中:

watch: {
        sass: {
            files: ['components/sass/*.{scss,sass}'],
            tasks: ['sass'],
            options: {
                livereload: true
            }
        },
// ...

我遇到了同样的问题,我相信(虽然不是 100% 确定)这是由于 watch 在时间上太接近时没有触发 2 个任务造成的:

  1. 你修改你的sass,这会触发watch
  2. 你的 sass 创建 css
  3. css 创建应该触发 watch 但它没有,因为它是在 1. 几毫秒前触发的

关于javascript - gruntjs 不能在 sass 上正常运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32809038/

相关文章:

sass - Normalise.css 与波本苦酒一起

html - 新站点 Bootstrap 首次使用,列将不一样

javascript - 在 Telegram 机器人返回错误中创建 INVOICE

javascript - Desktop Safari - 使用 js 将 <audio> src 设置为 blob

jquery - 添加到内联 html 样式属性的函数在 IE 中不起作用

CSS - 停止文本下降到图标下方

javascript - 在不更改 DOM 的情况下创建彩色边距,因为边框会像填充一样影响标记

javascript - 有没有办法从 javascript 更改 python 脚本中变量的值?

html - Materialize,静态导航中的移动菜单在模态后面?

html - 修复了具有模糊效果的标题,我做错了什么?