指南针不 运行 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 "
}
}
其他环境变量:
- sass (3.4.17)
- 指南针 (1.0.3)
- 罗盘核心 (1.1.0.alpha.3, 1.0.3)
- compass-import-once (1.0.5)
- OS: Windows 7 64 位
我遇到了同样的问题(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.
希望对您有所帮助,
问候,
何塞
我目前正在观察我的 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 "
}
}
其他环境变量:
- sass (3.4.17)
- 指南针 (1.0.3)
- 罗盘核心 (1.1.0.alpha.3, 1.0.3)
- compass-import-once (1.0.5)
- OS: Windows 7 64 位
我遇到了同样的问题(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.
希望对您有所帮助, 问候, 何塞