2017-03-04 12 views
1

JavaScriptの最新版を使用してColdFusionスクリプトを作成しようとしています。 このプログラムは、2つのエラーで終了します。クローズコンパイラ:変数定義が宣言されていません

JSC_UNDEFINED_VARIABLE. variable module is undeclared at jquery-3.1.1.js line 9767 : 12 
JSC_UNDEFINED_VARIABLE. variable define is undeclared at jquery-3.1.1.js line 9784 : 13 

私は魔法だのだろうか。 moduledefineは共通のJS変数です。私はClosureがそれらを知っていると信じています。私の設定は何ですか? externがありませんか?特定のCompilerOptionを設定する必要がありますか?

<cfset options = createObject("java", "com.google.javascript.jscomp.CompilerOptions").init()> 
<cfset cl = createObject("java", "com.google.javascript.jscomp.CompilationLevel")> 
<cfset wl = createObject("java", "com.google.javascript.jscomp.WarningLevel")> 
<cfset cl.SIMPLE_OPTIMIZATIONS.setOptionsForCompilationLevel(options)> 
<cfset cl.SIMPLE_OPTIMIZATIONS.setDebugOptionsForCompilationLevel(options)> 
<cfset lm = createobject("java", "com.google.javascript.jscomp.CompilerOptions$LanguageMode")> 

<cfset options.setEnvironment(options.Environment.BROWSER)> 

<cfset schar = createobject("java", "java.nio.charset.StandardCharsets")> 
<cfset options.setOutputCharset(schar.UTF_8)> 

<cfset wl.VERBOSE.setOptionsForWarningLevel(options)> 

<cfset comp = createObject("java", "com.google.javascript.jscomp.Compiler").init()> 
<cfset clr = createObject("java", "com.google.javascript.jscomp.CommandLineRunner")> 
<cfset sourceFile = createObject("java", "com.google.javascript.jscomp.SourceFile")> 

<cfset arrInputs = createObject("java", "java.util.ArrayList").init()> 
<cfset arrExterns = createObject("java", "java.util.ArrayList").init()> 

<cfset arrInputs.add(
    sourceFile.fromCode(
     javaCast("string", "jquery-3.1.1.js"), 
     javaCast("string", fileRead(expandPath("../advanced/js/jquery-3.1.1.js"), "utf-8")) 
    ) 
)> 

<cfset arrExterns.addAll(clr.getBuiltinExterns(options.Environment))> 

<cfset result = comp.compile(arrExterns, arrInputs , options)> 

<cfoutput> 
    |#result.success#| 

    <cfloop from="1" to="#arrayLen(result.errors)#" index="i"> 
     err: #result.errors[i]#<br> 
    </cfloop> 
</cfoutput> 

答えて

2

モジュールと定義

module

共通JS変数であり、典型的にはCommonJSモジュールシステムの指標です。 defineは、AMDモジュールシステムで使用されます。デフォルトのJS変数でもブラウザにも知られていません。

jQueryはユニバーサルモジュール定義パターンを使用してjQueryオブジェクトをモジュール(CommonJSまたはAMD)としてエクスポートします。見つからない場合はグローバル変数としてエクスポートします。クロージャコンパイラは、--process_common_js_modulesフラグが指定されている場合、このパターンを認識し、モジュール固有の部分を削除できます。

+0

ColdFusionコードで表現されているこのコマンドラインスイッチは、

関連する問題