15

私はうなり声を始めたばかりで、まだ学んでいるので、非常に奇妙な問題に遭遇しました。タスクを実行"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');

};
4

5 に答える 5

21

私は grunt watch を使用したことはありませんが、問題はそれが継続的に実行されているプロセスであり、デフォルトでコマンドラインが通常一度に 1 つのプロセスを実行することにあると思います。使用できるソリューションは 3 つあります。

  1. 新しいターミナルを開きます。一度に複数の端末を開くことができます。これにより、grunt watch が他の端末を占有している間に、2 番目の端末をメイン端末として使用できます。
  2. コマンドで & 記号を使用します。これによりプロセスが開始され、すぐにコマンドラインが返され、他の目的に使用できるようになります. バックグラウンドでコマンドを実行していると考えることができます。プロセスはまだターミナル ウィンドウに接続されているため、ウィンドウを閉じるとプロセスが終了します。

    うなり声と

  3. コマンドを (&) で囲みます。これは & と同じようにバックグラウンドで実行されますが、ターミナル ウィンドウを閉じてもプロセスは強制終了されません。

    (うなり声&)

于 2013-03-22T19:15:51.817 に答える
6

Windows 用

start grunt

これにより、バックグラウンドで「監視」するCMDウィンドウが表示され、作業していたgit-bashまたはcmdウィンドウがそのまま残ります。

つまり、これにより、別の cmd ウィンドウでタスクが実行されます。

コメントごとにこれが機能したことを人々に知らせたかっただけです。

于 2014-02-16T01:23:56.527 に答える
4

Ctrl と c を同時に押して監視プロセスを停止する方が簡単だと思います。次に、コマンドラインを使用して何かを実行し、ブラウザーに戻る準備ができたら、grunt watch を再度実行します。

于 2015-01-23T12:44:11.700 に答える
1

@Nick によって提案された端末のみのソリューションに加えて、より適切に統合された Node ソリューションがあればよいでしょう。

これには、grunt-contib-watch https://github.com/gruntjs/grunt-contrib-watch/issues/340および grung-bg-shell https://github.com/rma4ok/grunt-bg-shellからの WONTFIX がありました/issues/14 .

提案された代替案は次のとおりです。

于 2014-06-15T20:24:18.573 に答える
0

https://www.gnu.org/software/screen/という screen を使用しているので、端末ウィンドウを切り替えることができます。

于 2015-10-27T11:25:32.590 に答える