2

저는 의 간단한 "Hello World"예제를 사용하여 plovr을 시작하려고합니다. Michael Bolin. 하지만 제 빌드가 오류를 일으 킵니다. 누군가 내 실수에 대해 저에게 계몽 할 수 있습니까?"Hello World"plovr 예제에서 JSC_MISSING_PROVIDE_ERROR가 필요한 이유는 무엇입니까?

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

그리고이 안녕하세요-config.js의 내용입니다 :

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

hello.js의 내용입니다 :

여기

내 파일 레이아웃입니다
{ 
    "id": "hello-plovr", 
    "inputs": "hello.js", 
    "paths": "." 
} 

여기 ar 전자 내 빌드 결과 (I 중요한 경우 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 
나는 사소한 뭔가가 있어야합니다

하지만 난 그것을 보이지 않아요.

이 중요한 경우,이 자바 1.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) 

답변

2

는 plovr의 최신 버전 (4 월 2011 년 이후)를 사용 또는 goog.require에 공백을 사용하지 마십시오. 다음과 같이 hello.js 라인이 변경 :

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 

의를 바와 같이 : http://code.google.com/p/plovr/issues/detail?id=37

Plovr 저자는이 공백 문제에 대한 경고로 closure-linter를 사용하여 제안 : 여기 plovr 버그로보고

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

fixjsstyle 유틸리티 (closure-linter가 설치된 경우 포함됨)는 일부를 오류로 수정할 수 있지만 전부는 아닙니다. 하나는 아마도 손을 편집해야 할 것입니다. 위에서 언급 한 바와 같이

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