-2

私はWindowsOSで何百ものJavascriptファイルを細かく切り刻んでいて、それらのほぼ半分で問題が発生しました。minfiyingコンプレッサーは、ドットで囲まれた関数を持つjsファイルを適切に縮小できないことがわかりました。YUIコンプレッサーの場合、このような状況が発生するとファイルの内容が削除され、Ajaxminifierの場合は、ドットが無視され、その前に関数名が付けられます。

問題の関数の例:

function window.onload() {}

Error Message: :missing ( before function parameters

YUIコンプレッサーをMSBuildタスクとコマンドラインとして使用すると、どちらも同じ結果が得られます。

コマンドラインの例:

java -jar yuicompressor.jar --type js --charset utf-8 -o D:\foo.js D:\foo-min.js

Ajaxミニファイアの例を使用すると:

コマンドライン:

AjaxMin.exe -o D:\foo.js D:\foo-min.js

ただし、1つの解決策は関数を書き直すことであり、縮小プロセスはうまく機能します。例:

window.onload = function() {}

しかし、今のところ、これは私たちの選択肢ではありません。誰かがこの問題について知っていて、解決策を提供することができますか?


ありがとう。はい、私はこれらのファイルを継承しましたが、なぜこのように書かれたのかはまだわかりません。適切なJSに変換するプロセッサがあるとは思いません。WebアプリはIEでのみ実行されることを知っています。これが、これが機能している理由である可能性があります。Firefoxなどではそうではないかもしれません。これを変更したいと思っています。

4

1 に答える 1

7

無効なJavaScriptを縮小しようとしているため、問題が発生しています。関数にドットを含めることはできません。

名前空間を作成しようとしていると思います。もしそうなら、あなたは次のようなことをしたほうがいいでしょう:

var myVar = {
    foo: function () { /* do something */ }
}

myVar.foo();
于 2012-06-04T18:25:35.073 に答える