将node-normalize-scss与Grunt和Compass一起使用

时间:2015-12-03 11:46:33

标签: sass gruntjs compass

我想将normalize.scss与我目前使用Grunt设置的项目一起使用,以使用Compass编译SCSS。

我发现了这个,并使用下面的命令安装了它(从这里:https://www.npmjs.com/package/node-normalize-scss

  
    

npm install node-normalize-scss --save-dev

  

下面是gulp和grunt的配置示例,但不适用于指南针。我尝试过使用:

  
    

includePaths:require('node-normalize-scss')。includePaths

  

并将其添加到我的GruntFile.js中的Compass选项中,但是我收到的错误开始有点像这样:

  
    

运行“指南针:开发”(指南针)任务     错误:无效选项: - include-paths = / Applications / MAMP / htdocs / homepagev2 / node_modules / node-normalize-scss

  

用法:罗盘编译[path / to / project] [path / to / project / src / file.sass ...] [options]

描述: 如果未指定,则在指定的路径或当前目录下编译项目。

之后我读到我可以使用一个简单的命令来导入该路径,以便在我的.scss中我可以@import“normalize”

  
    

importPath:'node_modules / node-normalize-scss /',

  

但是使用这个我得到一个错误说

  
    

>>文件“styles / sass / style.scss”已更改。     找不到本地Npm模块“node-normalize-scss”。它安装了吗?

  

但它似乎正在将normalize.scss压缩成css,所以我猜它有点工作。

有没有更好的解决方案,所以我没有在编译时得到错误?

谢谢。

1 个答案:

答案 0 :(得分:0)

我也有这个问题,最终在这里找到答案:https://github.com/gruntjs/grunt-contrib-compass

用于指南针的选项(对于sass采用完全不同的选项)是 importPath ,您已经找到了它,并且它的工作方式相同。

所以,importPath: require('node-normalize-scss').includePaths应该,希望对你有用。

这是我当前的Gruntfile.js:

module.exports = function(grunt) {
    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
    compass: {
            dist: {
                options: {
                    importPath: require('node-normalize-scss').includePaths,
                    sassDir: 'path/to/sass',
                    cssDir: 'path/to/css'
                }
            }
        },
        watch: {
            css: {
                files: '**/*.scss',
                tasks: ['compass']
            }
        }
    });
    grunt.loadNpmTasks('grunt-contrib-compass');
    grunt.loadNpmTasks('grunt-contrib-watch');
    grunt.registerTask('default',['watch']);
}