【问题标题】:Which Node version should I use to develop my package?我应该使用哪个 Node 版本来开发我的包?
【发布时间】:2020-08-29 06:22:11
【问题描述】:

我目前正在本地机器上使用 Node v12.14.0 开发我的包,但我从 Dependabot 收到的 PR 让我思考这如何影响我的库的兼容性。

  • 如果我使用 v12 功能开发我的库,如果在具有冲突性重大更改的其他版本中运行,它应该无法工作,对吧?
  • 我从来没有在我的 package.json 中指定引擎限制,这是我应该做的吗?还是我不应该担心的事情?
  • 如果有多个有效的 LTS 版本,我应该使用哪一个?

我只是想知道是否有任何“标准”/推荐的方法来处理这个问题,或者我是否应该决定哪种方法最适合我而不用担心。

【问题讨论】:

  • 视情况而定。源代码是实际交付的,还是你有某种蒸腾(Babel,TypeScript)?您想要声称支持早期版本的 Node 吗? FWIW,在我发布到 NPM 的内容中,我尝试针对多个版本的 Node(当前为 10、12、14 - 参见例如github.com/textbook/fauxauth#compatibility)进行测试。
  • @jonrsharpe 在这种特定情况下,我正在运送源代码,但我在 TS 中有其他项目,我运送编译版本。目前我并没有声称支持任何东西,因为我在今天之前没有考虑过这一点,我只是想知道是否有人因此而对我的包裹有问题。使用多个版本进行测试可能不是一个坏主意,因为这是肯定的。
  • 在这种情况下,发送源代码并仅在一个版本中进行测试,请使用您想要支持的 最旧 版本(我建议使用 10 个,每个 nodejs.org/en/about/releases)。否则,您碰巧使用的是不太相关的。

标签: node.js npm package.json lts


【解决方案1】:

没有“标准”的方式来处理这个问题。您可以将节点版本放在 package.json 中以定义最小引擎版本。

{ "engines" : { "node" : ">=0.12" } }

如果您想让大多数开发人员都可以使用它,请使用有效的 LTS 版本。 Dubnium (v10) 仍受支持,因此您可以将其定义为最低要求,以使其几乎可供所有人使用。

【讨论】:

  • 谢谢,我想我会尝试支持 v10,但也会测试 v12,看看它是否与两者兼容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-08-09
  • 1970-01-01
  • 2010-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多