簡體   English   中英

webpack捆綁-從Typescript代碼調用外部Javascript

[英]webpack bundling - calling external Javascript from Typescript code

我有一個第三方Javascript庫,它不是純TypeScript庫。
具體來說-https://www.npmjs.com/package/js-sha512
它沒有類型聲明,但是無論如何我都想避免它,因為它是一個非常簡單的庫,我只需要從那里調用幾個函數。

我正在做的是:

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

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

結果是:

  1. 它與簡單的Typescript轉換完美配合,並直接將sha512.js文件包含到頁面中。
  2. 當我使用webpack構建捆綁包時-它構建成功,這意味着在構建過程中它將找到所有引用。
  3. 在檢查了內置的包之后,我發現其中包含了sha512.js,這意味着“ import'js-sha512' ”也可以正常工作。
  4. 但是,在將頁面加載到使用該頁面的位置之后-拋出錯誤:' 未定義sha512 '。

看起來這個庫只是不公開/無法全局訪問。 如果是這樣,如何解決? 還是還有什么問題呢?

該文檔頁面可能是可能解決方案的來源: https ://webpack.github.io/docs/shimming-modules.html(對於webpack1)或https://webpack.js.org/guides/shimming (對於webpack2) 。

在我的特殊情況下,只有一個小的Javascript庫- 腳本加載程序效果很好(因為-“ 就像您將代碼添加到腳本標簽中一樣 ”):

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

但是我知道這不是最佳選擇。 我簡要地嘗試了提到的其他內容(例如,imports-loader或ProvidePlugin,它適用於jQuery的$速記),但它並沒有立即起作用-可能是因為缺少了其他內容,或者可能是因為庫本身。 所以現在我將離開這個答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM