编写Angular库,假设用户将使用commonjs是否安全?

时间:2017-06-02 05:53:15

标签: angular

我正在为Angular2 +用户编写一个库(谁会在构建他们自己的发行版之前导入它)并从发行版中排除Angular本身,我需要做一些配置(在我的情况下包括externals Webpack配置)。

要使这项工作according to the Webpack maintainers,我需要假设我的图书馆用户使用commonjs。

假设Angular用户使用nodejs是否合理?或者我们可以说他们使用的任何捆绑器/构建工具都支持nodejs吗?我不想忽略Angular用户组。那么只是发布源代码呢?我认为假设TypeScript比Angular2用户更安全,而不是假设commonjs。

1 个答案:

答案 0 :(得分:0)

在某种程度上,是的,假设您的图书馆用户的环境有任何不妥之处。但是,几乎所有的捆绑器都支持commonjs。 UMD甚至得到更好的支持(因为它与commonjs和AMD兼容),所以这将是一个更安全的赌注。

但是,使用正确的配置,您可以支持commonjs,esmodules和UMD,而无需额外的配置。不同之处在于构建前两个是使用TypeScript编译器(重用相同的tsconfig.json)完成的,而UMD分发是使用Webpack构建的。

Compiling and bundling TypeScript libraries with Webpack详细说明了设置,其中包括demo repoforked and completely upgraded,提取请求pending

除此之外,显然可以提供AOT构建,但我对此并不了解。我所知道的唯一一个AOT是用于预编译@Components的Angular编译器,因此浏览器不必这样做(性能和dist大小优化)。