指南针不 运行 Windows 7 上的 Grunt

Compass not running with Grunt on Windows 7

我目前正在观察我的 sass 文件中的任何变化:['_/components/sass/*.scss']

当我 运行 g运行t 观看时(通过具有管理员权限的 Node.js 终端)似乎一切正常。

如果我对 .scss 文件进行任何更改,我会收到以下错误:

File "_\components\sass\styles.scss" changed.
Running "compass:dev" (compass) task
Warning: Command failed: C:\Windows\system32\cmd.exe /s /c "compass.bat --version"

The command "compass.bat" is either spelled incorctly or cannot be found.
Use --force to continue.

Aborted due to warnings.
Completed in 3.510s at Mon Aug 24 2015 13:15:13 GMT+0200 (Mitteleuropäische Somm
erzeit) - Waiting...

如您所见,G运行t 手表工作正常。它获取了对我的 .scss 文件的更改,但是当它尝试执行 'compass:dev' 时,它会尝试调用 "compass.bat --version"。我发现 compass.bat 的正确 path/cmd 命令应该是:

C:\Ruby22-x64\bin\compass.bat --version

所以我怀疑这是某个 PATH 问题??

我如何让这个程序基本上运行这个命令:

C:\Windows\system32\cmd.exe /s /c "C:\Ruby22-x64\bin\compass.bat --version"

而不是这个(它目前正在做的):

C:\Windows\system32\cmd.exe /s /c "compass.bat --version"

这是我的gruntfile.js:

module.exports = function(grunt) {

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

    grunt.initConfig({
        uglify: {
            my_target: {
                files:{
                    '_/js/script.js' : ['_/components/js/*.js']
                }//files
            } //my_targer
        }, //uglify

        compass: {
            dev: {
                options: {
                    config: 'config.rb'
                } //options
            }// dev
        }, //compass

        watch: {
            options: { livereload: true },
            scripts: {
                files: ['_/components/js/*.js'],
                tasks: ['uglify']
            }, //scripts

            sass: {
                files: ['_/components/sass/*.scss'],
                tasks: ['compass:dev']
            }, //sass

            html : {
                files: ['*.html'],
            } //html

        } //watch

    }) //initConfig

    grunt.registerTask('default', 'watch');


} //exports

这是我的 config.rb 文件:

css_dir = '_/css'
sass_dir = '_/components/sass'
javascripts_dir = '_/js'
output_style = :nested

这是我的 package.json 文件:

{
    "name" : "Lorum",
    "version" : "0.0.1",
    "dependencies" : {
        "grunt": "~0.4.5",
        "grunt-contrib-watch" : "~0.6.1",
        "grunt-contrib-compass" : "~1.0.3",
        "grunt-contrib-uglify" : "~0.9.1",
        "matchdep" : "~0.3.0 "
    }
}

其他环境变量:

我遇到了同样的问题(windows 7 64 位),我通过安装 ruby 然后安装指南针 gem.

解决了

根据您的系统(我也在 windows 上),您可以在此处下载 ruby:

http://rubyinstaller.org/downloads/ 

然后不要忘记在 windows 上设置环境变量 我想你可以直接从安装程序中设置,也可以从 Computer -> Control Panel -> Edit Environment变量。然后在系统变量上,将 ruby 路径添加到 Path 变量(我在 http://i.stack.imgur.com/928Y7.png 上做了)。

最后打开一个CMD终端,写入:

gem install compass

现在 grunt 应该运行良好:

grunt serve
Running "compass:server" (compass) task
directory .tmp/styles 
write .tmp/styles/main.css (0.096s)
write .tmp/styles/main.css.map

Done, without errors.

希望对您有所帮助, 问候, 何塞