2016-12-20 6 views
3

私はgrunt-inlineモジュールを調べており、次の問題に直面しています。例外がスローされた場合、GruntJSが実行を中断しないのはなぜですか?

var c = options.uglify ? UglifyJS.minify(inlineFilePath).code : grunt.file.read(inlineFilePath); 

問題はUglifyJS.minifyが例外をスローした場合(私はちょうどに直面していた)ということである:uglify: trueオプションはUglifyJS.minifythis line上で実行される意味の上設定から

grunt.initConfig({ 
    inline: { 
    options: { 
     uglify: true 
    }, 
    dist: { 
     src: 'src/index.html', 
     dest: 'dist/index.html' 
    } 
    } 
}); 

:私は、次のタスクの設定を持っていますgrunt inlineコマンドは失敗しませんが、かなり終了します。

だから、このモジュールの問題は、私の側からのいくつかの鼻くその旗が欠けていますか?

例外を除いて不法実行を中断する方法を私に説明できれば素晴らしいと思います。

EDIT: また、私は次のように、私はそれを自分で例外をキャッチして再スローする場合、それはうまく面倒を壊すことに気付きました:UglifyJS.minify(inlineFilePath).codeブレークから

try { 
    var c = options.uglify ? UglifyJS.minify(inlineFilePath).code : grunt.file.read(inlineFilePath); 
} catch(e) { 
    throw new Error(e.message); 
} 

なぜdoes't例外をgruntjsの仕事ですか?

答えて

2

モジュールの問題のようです。私はフラグを立ててこれらのエラーを返す方法を見つけることができないようです。 UPDATE

var c; 
if(options.uglify){ 
    try{ 
     c = UglifyJS.minify(inlineFilePath).code 
    }catch(err){ 
     grunt.log.error(err);//catch error and send to grunt 
    } 
}else{ 
     c=grunt.file.read(inlineFilePath); 
} 

:あなたがして、その行を置き換えてみてください なぜUglifyJS.minify(inlineFilePath)からdoes't例外がgruntjsタスクを破る.CODE?

これはエラーそのものの問題です:JS_Parse_Error これは正しく構築されたエラーではなく、ハッとしていません。答えてくれてありがとうを

https://github.com/mishoo/UglifyJS2/issues/348

+0

:あなたはそれを自分でキャッチし、修正が中に入るまでは、上記の行っているようnew Error()でそれをラップし、以下のリンクを参照してくださいする必要がように見えます。しかし、もし私が 'UglifyJS.minify'から例外をキャッチできたら、それは休憩ではないのですか?私の更新されたポストを参照してください – Erik

+0

Gruntは、gruntオブジェクトに接続されている例外を処理します。gruntオブジェクトはgruntjと通信するために使用する必要があります。 http://gruntjs.com/api/grunt – Revive

+0

これは少し真実ではありません。上記の私のポストのアップデートで説明したように、自分で例外をスローすると、gruntは正常に機能します。 – Erik

関連する問題