2

Closure:The Definitive Guide by Michael Bolinの簡単な「HelloWorld」の例を使用して、plovrを使い始めようとしています。しかし、私のビルドではエラーが発生します。誰かが私の間違いについて私に教えてもらえますか?

これが私のファイルレイアウトです:

C:\hello-plovr
├──hello-config.js
├──hello.js
└──plovr-0744c5209a34.jar

これはhello.jsの内容です:

goog.provide( 'example' );
goog.require( 'goog.dom' );  // line 2

example.sayHello = function( message ) {
    goog.dom.getElement( 'hello' ).innerHTML = message;
}

goog.exportSymbol( 'example.sayHello', example.sayHello );

そしてこれはhello-config.jsの内容です:

{
    "id": "hello-plovr",
    "inputs": "hello.js",
    "paths": "."
}

これが私のビルド結果です(重要な場合に備えてJavaバージョンを投入しました):

C:\hello-plovr> java -jar plovr-0744c5209a34.jar build hello-config.js
JSC_MISSING_PROVIDE_ERROR. required "goog.dom" namespace never provided at hello.js line 2 : 12
BUILD FAILED: 1 Errors, 0 Warnings

私は些細なことを見逃しているに違いありませんが、私はそれを見ていません。

重要な場合、これはJava1.6.0_24で実行されました。

C:\hello-plovr> java -version
java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02, mixed mode)
4

2 に答える 2

3

上記のように、これは元々plovrのバグが原因でした。

http://code.google.com/p/plovr/issues/detail?id=37

ただし、plovrのこのバグは修正されており、plovrの2011年4月のリリースで利用可能になりました。

于 2011-07-05T21:00:35.703 に答える
2

新しいバージョンのplovr(2011年4月以降)を使用するか、でスペースを使用しないでgoog.requireください。hello.js2行目を次のように変更します。

goog.require('goog.dom');  // NO SPACES

ここでplovrバグとして報告されています:http ://code.google.com/p/plovr/issues/detail?id = 37

Plovrの作成者は、空白の問題について警告するため、closure- linterを使用することを提案しています。

PS C:\hello-plovr> gjslint --strict hello.js
----- FILE  :  C:\hello-plovr\hello.js -----
Line 4, E:0007: (New error) Should have 2 blank lines between top-level blocks.
Line 5, E:0214: Missing description in @param tag
Line 7, E:0001: Extra space after "("
Line 7, E:0001: Extra space before ")"
Line 8, E:0005: Illegal tab in whitespace before "goog.dom.getElement"
Line 8, E:0001: Extra space after "("
Line 8, E:0001: Extra space before ")"
Line 9, E:0011: Missing semicolon after function assigned to a variable
Line 11, E:0001: Extra space after "("
Line 11, E:0001: Extra space before ")"
Found 10 errors, including 1 new errors, in 1 files (0 files OK).

Some of the errors reported by GJsLint may be auto-fixable using the script
fixjsstyle. Please double check any changes it makes and report any bugs. The
script can be run by executing:

fixjsstyle --strict hello.js

示されているように、fixjsstyleユーティリティ(closure-linterがインストールされている場合に含まれます)は、すべてではありませんが、一部のエラーを修正できます。おそらく手作業で編集する必要があります。hello.jsのlint準拠バージョンは次のとおりです。

goog.provide('example');
goog.require('goog.dom');


/**
 * @param {string} message A greeting message.
 */
example.sayHello = function(message) {
  goog.dom.getElement('hello').innerHTML = message;
};

goog.exportSymbol('example.sayHello', example.sayHello);
于 2011-04-11T05:31:05.063 に答える