0

Code Closure を機能させようとしていますが、残念ながら、常にエラーがスローされます。

コードは次のとおりです。

use LWP::UserAgent;
use HTTP::Request::Common;
use HTTP::Response;

my $name = 'test.js';
my $agent = new LWP::UserAgent();
$agent->agent("curl/7.21.0 (x86_64-pc-linux-gnu) libcurl/7.21.0 OpenSSL/0.9.8o zlib/1.2.3.4 libidn/1.18");

$res = $agent->request(POST 'http://closure-compiler.appspot.com/compile',
           content_type => 'multipart/form-data',
           content      => [
                   output_info => 'compiled_code',
                           compilation_level => 'SIMPLE_OPTIMIZATIONS',
                   output_format => 'text',
                   js_code => [File::Spec->rel2abs($name)]
                       ]);

if ($res->is_success) {
    $minified = $res->decoded_content;
    print $minified;die;
}

次のエラーが表示されます。

エラー (13): 生成する出力情報がありませんが、コンパイルが要求されました。

私が使用した API リファレンスは次のとおりです: http://code.google.com/intl/de-DE/closure/compiler/docs/api-ref.html

ここで何が問題なのかを誰かが知っていることを願っています。ありがとう。

4

2 に答える 2

2
#!/usr/bin/perl

use strict; use warnings;

use File::Slurp;
use LWP::UserAgent;

my $agent = LWP::UserAgent->new;
my $script = 'test.js';

my $response = $agent->post(
    'http://closure-compiler.appspot.com/compile',
    content_type => 'application/x-www-form-urlencoded',
    content => [
        compilation_level => 'SIMPLE_OPTIMIZATIONS',
        output_info => 'compiled_code',
        output_format => 'text',
        js_code => scalar read_file($script),
    ],
);

if ($response->is_success) {
    my $minified = $response->decoded_content;
    print $minified;
}

出力:

C:\Temp> cat test.js
// ここにコードを追加
関数こんにちは(名前){
  alert('こんにちは、' + 名前);
}
こんにちは('新しいユーザー');



C:\Temp> t
function hello(a){alert("こんにちは、"+a)}hello("新しいユーザー");
于 2010-08-14T01:01:19.210 に答える
1

コンパイルする実際のコードを js_code として渡します。試してください(フォームデータ content_type ヘッダーを削除してください):

use File::Slurp "read_file";
...
     js_code => scalar( read_file($name) ),

POST のファイル アップロード機能を使用しようとしているようです。API ドキュメントで、それがうまくいくと思わせるものは何ですか? そこに何かがあるとしても、私には見えません。

于 2010-08-14T00:52:41.627 に答える