I'm new to grunt, still learning, so I came up to a very strange problem.
When I run "watch"
task, my command line becomes blocked, so basically I cant do anything on it.
Bare in mind that the task is completed with success.
This is my command line output:
C:\server\css-test>grunt w
Running "watch" task
Waiting...OK
>> File "compass-examples-master\02\sass\screen.scss" changed.
Running "compass" (compass) task
unchanged compass-examples-master/02/sass/ie.scss
unchanged compass-examples-master/02/sass/print.scss
overwrite compass-examples-master/02/stylesheets/new/sass/screen.css
Running "watch" task
Completed in 1.496s at Fri Mar 22 2013 19:31:37 GMT+0100 (Central Europe Standard Time) - Waiting...
As you can see, all I do is run "compass"
task, it completes successfully.
Insertion point keeps blinking on after the Waiting...
text part, but keyboard input doesn't work.
My grunt configuration
module.exports = function (grunt)
{
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
compass: {
dist: {
options: {
sassDir: 'compass-examples-master/02',
cssDir: 'compass-examples-master/02/stylesheets/new',
imagesDir: 'compas-examples-master/02/images',
boring: false,
outputStyle: 'nested',
require: 'sass-media_query_combiner'
}
}
},
watch: {
files: 'compass-examples-master/02/sass/*',
tasks: ['c']
}
});
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-compass');
grunt.registerTask('c', 'compass');
grunt.registerTask('w', 'watch');
};
I havn't used grunt watch, however I believe the problem is that it is a continuously running process, and by default your command line will typically run one process at a time. There are 3 solutions you can use.
Use the & symbol in your command. This will begin the process and immediately return the command line to you, allowing you to use it for other things. You can think of it as running the command in the background. The process is still connected to the terminal window, so if you close the window, the process will end.
grunt w &
Use ( &) around your command. This will run in the background the same as just &, however the process will not be killed when you close the terminal window.
(grunt w &)