Cli: [FEATURE] 所有包的配置标准

创建于 2020-05-15  ·  2评论  ·  资料来源: npm/cli

我不确定这是否可行,或者它是否属于 Node.js 存储库。

什么为什么

通常情况下,某些依赖项需要特定的构建配置才能在整个环境中正常工作(例如)。

此配置可能是 Babel 配置、Webpack 配置或仅针对该包的自定义配置。

就目前而言,没有配置包的标准化方法。

有些人使用约定将字段放在以包命名的package.json ,并且包可以读取该字段。 但感觉不够标准。

什么时候

当包需要运行时或构建时的自定义配置时。

在哪里

如何

有时 JavaScript 需要针对某些情况构建步骤。 此配置功能将有一个可选的“构建依赖项”选项,该选项可以传递给任何包(无论它们是构建本机模块,还是只是将 JavaScript 转换为较低的形式)。

根据配置,包可能需要某些原本不需要的依赖项(fe 构建依赖项)。

因此,包系统将足够智能,因为如果用户具有特定的包配置,它可以确定要安装哪些附加依赖项。

也许这个特性只需要从现有的原生模块系统扩展到整个 JavaScript 系统(简单来说,原生模块很棘手)。

这对于诸如可选依赖项之类的东西也非常有用。 使用配置可以很容易地指定库使用(例如) three而不是babylonjs 。 这将导致安装适当的依赖项。 它类似于对等依赖项,但更简单,并且依赖于可选 deps 的给定包将具有可靠地访问配置 API 的标准方法,以确定是否指定了某些条件(目前这很棘手,并且 node_modules 的任何 Cystom 遍历都是非-这些情况下的标准)。

当前行为

  • 不适用

预期行为

  • 上面在高层次上覆盖

再举一个例子,有时包消费者需要使用包源而不是通常的编译输出,以便以不同的方式编译代码(通常对我来说,我想用 Webpack 来做到这一点)。

一般来说,这类事情存在问题,到目前为止 NPM 没有提供通用的处理方式。

WHO

包作者和他们的用户

参考

  • 不适用
Enhancement

最有用的评论

这个功能会很神奇,因为有时开发人员在解决这类问题时会遇到很多困难。

所有2条评论

此功能将允许包作者以标准方式向他们的包添加功能,他们可以说“哦,您希望 CSS 是外部的,而不是内置到通常的包文件中,没问题,只需添加这样的 -和 - 这样的选项在你的项目配置中,那么这个包将自动从其输出中排除任何 CSS”,然后给定标准配置,包作者可以使用 Webpack、Babel 或任何所需的工具来实现结果。

从这个意义上说,所有包都会有一些标准的方式来允许用户与他们交流选项,其中选项可以规定替代的依赖项集或构建步骤,而不管包使用什么源文件或构建工具。

用户端会有配置,但这些选项将映射到包端的配置,该配置将指示依赖项(以及构建工具)在安装期间运行,或类似。

我可以看到大多数包然后提供默认的源代码输出,还有一些用户自定义它。

通常情况下,获得 TypeScript 源代码编译的最佳方法是提供原始 TypeScript 源代码,并在消费者端转译它,并具有不受声明文件 emit 限制的完整功能。 配置约定将对此有很大帮助。

TypeScript 宣称消费者永远不应该转译 TypeScript 源代码,但他们已经挖了一个坑,由于这个相关的问题,它可能是必要的。 我仅将其用作配置标准可能非常有用的一个示例。

这个功能会很神奇,因为有时开发人员在解决这类问题时会遇到很多困难。

此页面是否有帮助?
0 / 5 - 0 等级