javascript - 在 Node.JS 中编写 CLI 时,您是否应该始终使用向后兼容的代码?

标签 javascript node.js ecmascript-6 command-line-interface

我更喜欢 ES6 语法,并且已经非常习惯该语法,但是,当在 Node.js 中开发供公共(public)使用(甚至非 javascript 开发人员)的 CLI 时,我是否应该始终使用与确实是旧版本的 Node.JS,比如说 0.6,因为我无法确定用户在他的系统上安装了哪个 Node.JS 版本。

什么是确保与不一定仅由熟悉 Node.JS 的用户组成的用户最大兼容性的良好和/或常见做法?

最佳答案

所以,这更多的是一个意见问题,所以这是我的意见:

如果您计划通过 NPM 分发 CLI 应用程序,那么您应该确保您的 CLI 在当前的 Node.js LTS 版本上运行。这意味着在回答这个问题时,您应该支持 Node 4/5:https://github.com/nodejs/LTS

现在,理想情况下,对于 CLI 应用程序,您不会通过 NPM 分发它。原因是有很多人可能会发现您的 CLI 很有用,其中许多人不是 Node 开发人员。

我更喜欢做的是将我的 CLI 应用程序捆绑起来进行分发,以便它们在沙盒环境中包含 Node 来运行 CLI。这样:您可以编写 CLI 并使用您想要的任何版本的 Node,并且您的用户甚至不需要知道 Node 是什么就可以安装它。

关于javascript - 在 Node.JS 中编写 CLI 时,您是否应该始终使用向后兼容的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39193626/

相关文章:

javascript - 错误: Invalid value for <path> attribute d=".。用于饼图

javascript - 为什么我从 here-string 中收到 "not a cmdlet"错误?

javascript - 递归复制而不覆盖

javascript - 您可以使用 Javascript 动态地将事件监听器添加到 for 循环中的变量吗

ecmascript-6 - Aurelia 中的自定义元素单例

javascript - 创建一个函数,该函数返回一个数组,该数组具有由两个数组或一个数组和多个单个项构建的唯一项

node.js - 如何在 Azure DevOps 构建结果中添加新选项卡以显示 HTML 内容?

javascript - 如何重试 Promise 解决方案 N 次,并在两次尝试之间有延迟?

javascript - 我面临与 ngx-spinner 相关的问题

cookies - 浏览器中的 ES6 模块加载器会忽略 cookie