2013-03-22 93 views
12

我是新来的咕噜,还在学习,所以我想出了一个很奇怪的问题。 当我运行"watch"任务时,我的命令行被阻塞,所以基本上我无法做任何事情。不要忘记,任务是成功完成的。 这是我的命令行输出:grunt watch任务块命令行

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... 

正如你看到的,我要做的就是运行"compass"任务,它成功完成。

插入点在Waiting...文本部分后保持闪烁,但键盘输入不起作用。

我咕噜配置

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'); 

}; 

回答

20

我没有带用咕噜的手表,但是我相信这个问题是,它是一个不断运行的进程,并在默认情况下你的命令行通常会同时运行一个进程。有3种解决方案可以使用。

  1. 打开一个新终端。您可以一次打开多个,这将允许您使用第二个作为主要终端,而咕噜钟占据另一个。
  2. 在命令中使用&符号。这将开始该过程,并立即将命令行返回给您,以便您可以将其用于其他事情。您可以将其视为在后台运行命令。该过程仍然连接到终端窗口,因此如果关闭窗口,过程将结束。

    咕噜W¯¯&

  3. 使用(&)在你的命令。这将在后台运行,就像&一样,但是在关闭终端窗口时不会终止进程。

    (咕噜W¯¯&)

+0

我相信这会解决你的问题,但如果我误解了你的问题,我很抱歉。 – 2013-03-22 19:17:23

+0

'&'不起作用。 但是,打开一个新的终端确实有效。 有没有关于这个地方的文档?你是怎么想出''&&''和'(grunt w&)'的? – 2013-03-22 20:35:37

+0

对不起,基于&n * nix,不知何故,我没有注意到C:/暗示窗口。此链接可指向您在正确的方向上在Windows上复制此行为。 http://www.tomshardware.com/forum/34598-45-windows-command-background-unix。如果你在页面的大约一半处看到一个'start'命令被提到,这看起来像它会工作,但我不确定。 – 2013-03-22 20:56:50

5

对于Windows使用

start grunt 

这会带来一个CMD窗口,在后台,将 “表”,并留下了混帐的bash或者你正在工作的cmd窗口与你离开时一样。

换句话说,这将在单独的cmd窗口中为您运行任务。

只是想让人们知道这个每个评论工作。

5

我觉得很简单,只是通过按Ctrl和C同时停止守护进程。 然后,我可以使用命令行然后做东西,然后当我准备好回到浏览器时再次运行grunt watch。