まず、最も重要なことは、コンパイル スクリプトがソース ファイルを上書きするように設定されていることです。これがあなたがやろうとしていることであると本当に、完全に肯定的ですか?コンパイルは損失を伴う変換です: コメント (型注釈を含む) を破棄し、すべての名前を変更し、積極的にリファクタリングし、あらゆる場所でインライン化を行い、通常、ハードワークを維持できない混乱に陥れます。
java -jar compiler.jar --js assets/js/file1.js
--js_output_file assets/js/file1.js
java -jar compiler.jar --js assets/js/file2.js
--js_output_file assets/js/file2.js
私があなたの言葉を信じており、あなたが実際に上記のことを行った場合、残念ながら「私のファイルは現在破損しています」という質問を説明するでしょう. バックアップがあることを願っています。
より一般的には、Compiler Manualを読んでください。すべてですが、特に のセクションinconsistent property names
です。ソースファイルが互いにどのように関連しているかについてコンパイラーに通知されない場合、クロージャーがそれらの内容の名前を一貫して変更することは不可能です。
コンパイル済みスタイルの共有オブジェクトを作成する場合.dll
、マニュアルに記載されている名前の断片化の問題のため、これはクロージャによってサポートされません。また、プリコンパイルする必要はありません。コンパイルはそのままでかなり高速です。代わりにソース ファイルを共有してください。
ビルド ディレクトリを作成し、コンパイラ出力をソース コードから離してください。コードが最初のパスで完全にビルドされることはありません。問題のコードが単純な数学ユーティリティであっても、何度もビルドしてテストする必要があります。
要約すれば:
(1)マニュアル全体を読む、(2) Externsを書くか試すgoog.require
、(3)プリコンパイルは過大評価されている、(4)ソースファイルを決して上書きしない、(5)頻繁にバックアップを保持する。