2013-07-04 6 views
13

Javascriptの縮小は、一般的に、ソースからすべてのコメントを削除します。つまり、ライセンス情報も削除されます。ライセンスを削除するjavascript minification?

私は大きなサイトを実行し、私は、ライセンスを遵守する場合、それは私が自動縮小を使用できないことを意味するのでしょうか? 「最初のコメントは保存しますが他のコメントは保存しない」というオプションはありません。右ですか? ?

むしろ大企業は、私が書いたと私(MIT)のライセンスが含まれていないいくつかのコードを使用していたので、私は聞いて、私はすべてのpeeved得る前に、私は自分の靴に自分自身を入れたいです。

編集
縮小時に除去されないこと(答えを参照)著者としての負担は、このような方法でライセンスをコメントするには私にあるようです。私はそのライセンスを最初にやっても問題ありません。ライセンスがの場合はまだが削除されています。

答えて

7

/** Notice 
    * 
    * 
**/ 

または

/*! 
* 
* 
*/ 

あなたにより縮小ツールに依存これは "の古典的なケースです場合によります"。

これは、小型化装置によって異なります。例えば、-ncフラグを指定しないと特に言わない限り、UglifyJSはファイルの最初のコメントブロックに残ります。他のユーザー(GoogleのClosure Compilerなど)は特別な注釈(たとえば、@licenseまたは@preserve)を探します。 「朗読」のコメント(例えば、/*! ... */)を尊重する人もあれば、そうでない人もいます。

それはに依存します。あなたは縮小します。組織によっては、積極的にすべてのバイトを圧縮するためにすべてを細分化して連結しています。他の人は、ソース管理でライセンスを追加し、縮小中にライセンスを "放置"している人もいます。他の人は、の後にライセンスファイルを適用して、すべてを連結しています。

特に、使用するすべてのライブラリを積極的に1つのJSファイルに連結している場合は、ライセンスをプロダクションビルドにドロップするのが簡単です。彼らは彼らがそれをやっていることを知らないかもしれません。おそらくここにあなたの最善の賭けは、彼らがライセンス条項を尊重していることを確認して、そこにライセンステキストを残しておいてほしいと頼むだけです。

7

いいえ! YUIcompressorで次のコメントスタイルを使用した場合:

/*! 
* 
*/ 

感嘆符は、コメントを保持するようにコンプレッサーに指示します。

Here is Documented Notes for these comments

6

Googleの閉鎖コンパイラは、コメントを保つためにそれを伝える@preserve and @license annotationsをサポートしています。

/** 
* @preserve Copyright 2009 SomeThirdParty. 
* Here is the full license text and copyright 
* notice for this file. Note that the notice can span several 
* lines and is only terminated by the closing star and slash: 
*/ 

UglifyJSは、正規表現を受け入れ、コマンドラインオプション、--commentsを、サポートしています。正規表現に一致するコメントはすべて出力に保存されます。

他の回答には、他のminifiersもこの機能をサポートしていることが示されています。独自のケースで使用する正確な構文/技法を決定するためには、選択したマイナーのドキュメントを読む必要があります。

+0

フォーマットの例が役立ちます。私はコメントの最後に '@ license'の部分を持っていました。そして、私は縮小されたファイルに空のコメントが残っていました。 Closureは '@ license'アノテーションの後で何かを保持するように見えます。 –

1

あなたは、ノードのr.jsを使用することができます。

ここでは、ライセンスのコメントを維持することhow to use it

Sample output

それともwro4j記載されています。

1

ライセンス情報を保存することができます。例えば、YUIコンプレッサーはそれを行うことができます:

/*で始まるCスタイルのコメントです。保存されます。これは、著作権/ライセンス情報を含むコメントに役立ちます。

Documentation

0

それはあなたのツールのマニュアルを見

+2

しかし、開発者は、あなたのコードを使用する人が使用するツールのコントロールや知識がありません。 – HBP

0

これは、使用されるミニツールツール/ APIによって異なります。 重要なコメントは、ツールがサポートしている場合は、ミニカー出力に残すことができます。

http://utilninja.com/Computing/JavascriptMinifier

0

数:次は私が重要なコメントを維持したJavaScriptコードを縮小化するために使用することができ、簡単なオンラインツールに続き重要なコメント

/*! 
* Your comment...1 
* ...... 
* Your comment...n 
*/ 

、ためのフォーマットです数年後ですが...

デッドコードを排除するミニカーを除いて、t彼は名前空間プレフィックスを持つコメントではないもののライセンスを取得しています。

JSの場合は次のようになります。

var NS_LICENSE_URL = "Cool Inc. - Apache 2.0 - http://github.com/nfisher/cooljs/LICENSE.txt"; 

CSSの場合、

.ns_license_url { 
    content: "Cool Inc. - Apache 2.0 - http://github.com/nfisher/cooljs/LICENSE.txt"; 
} 

別の方法としては、全体のライセンスをコピーすることができます。また、JSコンソールにそれを印刷するためのconsole.outを追加することができますが、それを逸脱している可能性があります。

関連する問題