Pdf.js: pdf.jsをcdnで利用できるようにする

作成日 2014年11月17日  ·  29コメント  ·  ソース: mozilla/pdf.js

パブリックCDNでpdf.jsを利用できるようにすると、インストールと更新のワークフローが簡素化される場合があります。

cdnjsは、求められた場合、pdf.jsを無料でホストする可能性があります。

https://github.com/cdnjs/cdnjs/issues/3824

最も参考になるコメント

:+1:cdnサポート用。 バグの再現やラピッドプロトタイピングの共有に最適

全てのコメント29件

修正される問題について説明してください。 「他のプロジェクトがそれをしているので」は悪い理由です。

いい視点ね。 タイトルと説明を更新しました。

pdf.jsライブラリは、npmからnpm install pdfjs-distbower install pdfjs-distを介して、pdfjs-distリポジトリからgitpullを介してインストールできます。

パブリックCDNでpdf.jsを利用できるようにすると、インストールと更新のワークフローが簡素化される場合があります。

ここではどのようなケースについて説明しますか?

私のワークフローでは、フロントエンドの依存関係管理にnpmやbowarなどのツールを使用せず、ライブラリのベンダーコピーを使用したくない。

代わりに、cdnでホストされているバージョンのjquery、jqueryui、ckeditor、またはその他の必要なjavascriptライブラリにリンクします。 「アップグレード」する必要があるときはいつでも、URLのバージョン番号を変更するだけです。

代わりに、cdnでホストされているバージョンにリンクします

ブラウザとCORSポリシーの欠陥により、ユーザーは実際のPDF解析を実行してPDF.jsのパフォーマンスを大幅に向上させるWebワーカー(pdf.worker.jsファイル)をインスタンス化できません。

別の方法があります:ワーカーを無効にします。 しかし、それは標準以下のパフォーマンスを提供し、私たちはそれを宣伝したくありません。

それは正当な理由です。 CORSで許可されている場合は、CDNをホストすることをお勧めします。 ありがとう!

jsfiddleでPDF.jsを使おうとしたときに、これに遭遇しました。
fiddle

うん、ほとんどの場合、npmライブラリをローカルにインストールせずにプロトタイピングツールを使用する場合

:+1:cdnサポート用。 バグの再現やラピッドプロトタイピングの共有に最適

2015年11月の時点でまだCDNサポートがないのはなぜですか?

2015年11月の時点でまだCDNサポートがないのはなぜですか?

AFIAK @cdnjs

これはこのリポジトリ寄稿者イニシアチブではないため、公開されたコードに関連して問題が存在するかどうかはわかりません。

申し訳ありませんが、それ以上の質問を避けるために、ReadMeにURLを追加するのは逆かもしれません。

申し訳ありませんが、それ以上の質問を避けるために、ReadMeにURLを追加するのは逆かもしれません。

問題やセキュリティリスクなしで機能することを確認する場合のみ。 上記の私の懸念をhttps://github.com/mozilla/pdf.js/issues/5490#issuecomment-63322602で参照して

申し訳ありませんが:)

私のユースケースでは、完全な透明性が必要です。 パフォーマンスは完全に劣っています。 サーバーに何も隠したくないので、pdf.jsを使用するのはそのためです。 すべてがクライアント上で行われ、コードはそれが主張することを実行することが保証されています。

私自身のコードは小さく、読みやすく、精査のために開いています。 生産においてさえ決して縮小されません。 私はクライアント上で実行されるサードパーティのコードに依存しており、信頼は作成者とオープンソースコミュニティから生じています。 アプリはgitハブでオープンソースであり、アプリ自体もgitハブでホストされています。

アプリがこのように維持されている限り、私の信頼性は重要ではありません。 ただし、ソースにpdf.jsを含めると、ビルドまたは縮小されていなくても、透明性が大幅に低下します。 ユーザーは、私がpdf.jsジャングルに悪意のあるコードを隠していないことを信じる必要があります。

一方、pdf.jsおよび他のすべてのサードパーティコードが、チームおよびコミュニティによって承認されたcdnからフェッチされた(できれば縮小されていない)場合、私自身の信頼性はほとんど無関係になります。

ワーカー用にラップされている場合(#6753を参照)、コアライブラリはCDNで「ホスト可能」です。たとえば、jsfiddleとjsbinで正常に機能する最小限の例です。

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>Minimal PDF.js example</title>
  <script src="//mozilla.github.io/pdf.js/build/pdf.js"></script>
</head>
<body>
  <script>
    var loadingTask = PDFJS.getDocument('//cdn.mozilla.net/pdfjs/tracemonkey.pdf');
    loadingTask.promise.then(function (pdfDocument)  { 
      console.log('Num pages: ' + pdfDocument.numPages);
    }, function (reason) {
      console.error('Loading Error: ' + reason);
    })
  </script>
</body>
</html>

NPM CDNは、要求に応じてすべてのnpmパッケージをホストします。

https://npmcdn.com/[email protected]/build/pdf.combined.js

明らかにメンテナは認可していませんが、プロトタイピングの目的でそれが必要な場合はそこにあります。

@yurydelendikそれは間違いなく私のために働くでしょう、ありがとう!

@darylteoヒントをありがとう。 しかし、それほど透明ではありません。それが私にとって重要なことです。

https://npmcdn.com/[email protected]/build/pdf.combined.js

@ darylteo 、PDF.jsチームは、ライブラリの使用を目的としていないため、pdf.combined.jsの非推奨を常に検討しています。 可能な場合は使用しないようにしてください(また、pdf.combined.jsが意味するdisableWorker = trueを適用しないでください)。

@yurydelendik情報をありがとう! iOS WKWebViewが当面iframeでPDFを適切にレンダリングしないことを回避するためのプロトタイプを作成しているだけですが、それを念頭に置いておくつもりです。

@camitz 、興味があります。 yurydelendikの2月8日のコードはどのようにまたはなぜ「[あなた]のために働いた」のですか? //mozilla.github.io/pdf.js/build/pdf.jsを参照しているので、私は尋ねていますが、通常はそれをcdnとは見なしません。 また、pdf.jsのバージョン管理されたコピーを参照していません

@yurydelendik (または適切な人)-pdf.jsのバージョン管理され縮小されたコピーが少なくとも1つの信頼できるcdnで確実に利用可能になるまで、この問題を再開できますか? この問題はcdnjsへの参照から始まり、彼らのWebサイトによると、PDF.jsをcdnjsに追加するように要求するために、 GitHub問題テンプレートを介して「libを要求する」ための好ましい方法があります。 PDF.jsプロジェクトリーダーはそのような要求をしてくれませんか? (私は自分でそれを行いますが、PDF.jsプロジェクトがcdnjsにpdf.jsまたはpdfjs-distのどちらを使用させるかはわかりません。また、PDF.jsプロジェクト自体がcdnjsに送られるコード。)

彼が12月30日に共有したcamitzのユースケースは非常に優れており、それでも多くの人々(私を含む)に適用できると思います。 camitzのように、ユーザーが私に与えなければならない信頼の量を最小限に抑えたいと思います。CDNにあるライブラリのコピーを使用することは間違いなくそれを助けます。

@ jon-freed最新のhttps://npmcdn.com/pdfjs-distがあります。 cdnjsの場合、プルリクエストhttps://github.com/cdnjs/cdnjs/pull/5993があります。 現時点でできることはこれ以上ないと思います。 特にnpmcdnWebサイトは、NPMパッケージを使用しているため、常に最新であるため便利です。

@ jon-freedは、npmcdnhttps //jsfiddle.net/y3rsLwwp/5/を使用するjsfiddleの例です

@ timvandermeij@ yurydelendik :その情報をありがとう! それは、ダリルテオが2月17日に述べたことを(とにかく)明確にするのに役立ちます

うーん... CDNJSはここで管理しています。これから作業します。

さて、今追加されました: https

参照: https

@PeterDaveHello素晴らしい! PDF.jsを2つのCDN(cdnjsとnpmcdn)でホストできるようになりました。

問題はありません。 参考までに、アーキテクチャによって、npmcdnは少し速く更新される可能性がありますが、CDNJSは実稼働環境でのパフォーマンスが向上し、CDNJSは縮小ファイルと追加のマップファイルも提供します。

このページは役に立ちましたか?
0 / 5 - 0 評価