webpack捆绑 - 从Typescript代码

时间:2017-01-24 15:16:09

标签: typescript webpack

我有一个第三方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未定义'。
  5. 看起来这个图书馆没有公开/全球无法访问。如果是这样 - 它如何解决?或者还有什么可能是错的?

1 个答案:

答案 0 :(得分:0)

此文档页面可能是可能的解决方案的来源: https://webpack.github.io/docs/shimming-modules.html(对于webpack1)或https://webpack.js.org/guides/shimming(对于webpack2)。

在我的特定情况下,只有一个小的Javascript库 - script-loader工作得很好(因为它&#39; 就像你将代码添加到脚本标签一样< / EM>&#34):

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

但我明白这不是最好的选择。我简单地尝试了其他提到的东西(比如import-loader,或者ProvidePlugin,它适用于jQuery&#39; $ 的简写),但它并没有立即起作用 - 可能是因为其他东西是失踪,或者可能是因为图书馆本身。所以现在我将留下这个答案。