【问题标题】:Webpack: How to hide export functions/variables under one global variable?Webpack:如何将导出函数/变量隐藏在一个全局变量下?
【发布时间】:2017-02-14 21:03:48
【问题描述】:

我正在改变 TypeScript 库的构建方式,从 gulp concat + typescript 编译器到 Webpack。

该库现在可以与require/import 关键字一起使用。但是,我必须保留以经典方式使用库的能力,包括将脚本放入 html 标头中。

在所有函数/变量都隐藏在全局变量 Survey 下之前。为了实现这一点,使用了 typescript namespace Survey {},并且所有需要的类/变量都使用 export 关键字。

我必须删除 命名空间,现在,为了实现同样的效果,拥有一个 全局变量,我必须将所有需要的导出类/变量包含到构建条目中点文件:

https://github.com/dmitrykurmanov/surveyjs/blob/bd62cd7388960a0230767b3bcf97e6332ee99cf3/src/entries/koBootstrapIndex.js

有没有其他方法可以在不创建这个庞大列表的情况下达到同样的效果?

【问题讨论】:

  • 你如何使用 module.exports 和对象字面量而不是 ES6 模块 export 声明?
  • @Bergi 是的,我可以使用export {} from '...' 声明,谢谢它应该让我的入口点更干净
  • @Bergi 你能创建一个单独的答案,所以我可以标记为“答案”吗?

标签: javascript typescript ecmascript-6 webpack umd


【解决方案1】:

您可以使用 ES6 重新导出,而不是导入、组合成对象文字然后重新导出(通过 module.exports):

import … from …
export … // module.exports = {…};

变成

export … from …

所以你仍然需要建立一个标识符列表,但你不必再重复它们了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多