2017-01-24 19 views
0

私は、純粋なTypescriptライブラリではないサードパーティのJavascriptライブラリを持っています。
より具体的には、-
がありますが、それはかなり単純なライブラリであり、私はそこからいくつかの関数を呼び出す必要があるので、とにかくそれを避けたいと思います。私がやっている何webpack bundling - Typescriptコードから外部Javascriptを呼び出す

は次のとおりです。

// declaration  
import 'js-sha512' 
declare function sha512(value: string): string; 

// usage 
var encryptedValue = sha512(this.internalValue); 

結果は次のとおりです。

  1. シンプルな活字体のtranspilationと完全にうまく機能し、ページに直接sha512.jsファイルを含みます。
  2. 私はwebpackでバンドルをビルドするときにビルドに成功します。つまり、ビルド中にすべての参照が見つかります。
  3. 組み込みバンドルを調べた後、sha512.jsが含まれていることがわかります。つまり、「import 'js-sha512'」も正しく動作しています。
  4. しかし、使用されているページを読み込んだ後、 'sha512が定義されていません'というエラーが表示されます。

このライブラリは、公開されておらず、グローバルにアクセスできないようです。それが事実なら、それはどのように解決できるのでしょうか?それ以外に何が間違っているのでしょうか?

+0

質問に間違ったライブラリをリンクしました。https://www.npmjs.com/package/js-sha512 –

+1

はい、確かにそうです。私を固定してくれてありがとう! :)とにかく言及されたライブラリは単なる例です。 – Aleksanderis

答えて

0

https://webpack.github.io/docs/shimming-modules.html(webpack1の場合)またはhttps://webpack.js.org/guides/shimming(webpack2の場合)このマニュアルページは、おそらく解決策のソースです。

require("script-loader!../node_modules/js-sha512/build/sha512.min.js"); 

しかし、私を: - script-loaderは非常によく働いていた(それはだから - 「あなたのようなは、scriptタグにコードを追加します」)だけの小さなJavaScriptライブラリを持つ私の特定のケースで

、それが最良の選択肢ではないことを理解してください。私は(インポートローダやProvidePluginのように)jQueryの $の略語のように、簡単に言いましたが、すぐには機能しませんでした。だから私はこの答えを残します。

関連する問題