首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >咕噜-控制-手表+ sass:如何指定目标文件?

咕噜-控制-手表+ sass:如何指定目标文件?
EN

Stack Overflow用户
提问于 2016-02-02 10:35:31
回答 2查看 1.4K关注 0票数 5

我有一个工作流程:

代码语言:javascript
运行
复制
module.exports = function(grunt) {

    require('load-grunt-tasks')(grunt); // npm install --save-dev load-grunt-tasks

    grunt.initConfig({
    sass: {
        options: {
        sourceMap: true
        },
        dist: {
        }
    },
    watch: {
      files: ['src/*.scss'],
      tasks: ['sass']
    }
    });

    grunt.loadNpmTasks('grunt-contrib-watch');

    grunt.registerTask('default', ["sass"]);

};

在运行grunt watch并更改src/*.scss文件后,我得到以下内容:

文件"src/main.scss“更改。运行"sass:dist“(sass)任务完成,没有错误。在0.949秒在2016年2月2日星期二完成11:25 11 GMT+0100 (CET) -等待.

我的问题是:生成的文件在哪里?如何指定目标文件?

我也尝试过使用这个工作流:

代码语言:javascript
运行
复制
module.exports = function(grunt) {

    require('load-grunt-tasks')(grunt); // npm install --save-dev load-grunt-tasks

    grunt.initConfig({
    sass: {
        options: {
        sourceMap: true
        },
        dist: {
          files: [{
            expand: true,
            cwd: 'src',
            src: ['*.scss'],
            dest: '.',
            ext: '.css'
          }]
        }
    },
    watch: {
      files: ['*.scss'],
      tasks: ['sass']
    }
    });

    grunt.loadNpmTasks('grunt-contrib-watch');

    grunt.registerTask('default', ["sass"]);

};

运行也是grunt watch,但是当我更改src/*.scss时,什么都不会发生。

编辑:这是我在回答后的咕噜文件:

代码语言:javascript
运行
复制
module.exports = function(grunt) {

    require('load-grunt-tasks')(grunt); // npm install --save-dev load-grunt-tasks

    grunt.initConfig({
    sass: {
        options: {
        sourceMap: true
        },
        dist: {
          files: [{
            expand: true,
            cwd: '.',
            src: ['src/**/*.scss'],
            dest: '.',
            ext: '.css'
          }]
        }
    },
    watch: {
      files: ['src/**/*.scss'],
      tasks: ['sass']
    }
    });

    grunt.loadNpmTasks('grunt-contrib-watch');

    grunt.registerTask('default', ["sass"]);

};
EN

Stack Overflow用户

回答已采纳

发布于 2016-02-10 14:13:58

假设您有一个main.scss文件,而@import是来自_sassfile.scsslayout文件夹。听起来不错吗?

代码语言:javascript
运行
复制
sass: {
    options: {
      sourceMap: true,
      outFile: 'dist/main.css.map'    // so you get a sourceMap file
    },
    dist: {
      files: {
        'dist/main.css' : 'src/main.scss'
      }
    }
  },
  watch: {
    files: ['src/layout/*.scss'],
    tasks: ['sass']
  }

这意味着grunt watch将监视各个组件sass/scss文件中的更改,然后它将运行sass任务,该任务将将所有内容处理到dist/main.css

如果您只是使用一个Sass文件,也就是说,main.scss是您唯一的文件,或者如果您要将附加的_partial.scss Sass文件放置在同一个目录中,则可以将监视命令保持为

代码语言:javascript
运行
复制
watch: {
    files: ['src/*.scss'],
    tasks: ['sass']
}

最后一件事。用于Sass文件的cwdsrc/不会转到您为watch指定的files。因此,您的Gruntfile正在寻找第二个工作流中src/上方的一个目录中的文件更改。

票数 2
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35151056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档