为什么有这么多JavaScript库讨论命令行安装?

时间:2016-02-23 17:25:07

标签: javascript theory

我显然错过了JavaScript文化的转变;现在我看到了JavaScript库(例如modernizr或其他一百万个),它们通过命令行通过 npm 来讨论它们。这当然与<script src ='...'></script>的简单概念非常不同。

我的问题是&#39;什么是npm&#39;,但是JavaScript开发文化中发生了什么 - 范式转换本身。

如果所有这些都与node.js有关,那么为什么这些库不能在其下载页面(或其他地方)的顶部清楚地说明它们的库是node.js库?

  

命令行?你在说什么!? ......它的JavaScript!

1 个答案:

答案 0 :(得分:3)

使用JavaScript进行的操作与使用Maven的Java已经发生的情况完全相同,对于使用pip的Python已经发生了同样的事情(仅举两例)。复杂的软件具有依赖性,并且可以通过以下三种方式之一来解决满足这些依赖性的问题:

  1. 将所有依赖项与软件包一起包含在内
  2. 让开发人员追捕,下载并汇集所有依赖项
  3. 以标准化方式描述依赖关系并使用软件自动安装依赖关系
  4. 第一个选项存在代码大小和更新依赖关系的复杂性以及更新版本的子依赖关系的问题(例如,如果我想更新包A,它依赖于B和C,它们不需要更新,然后我还需要重新下载捆绑的B和C吗?)。第二种选择是客户端JavaScript的最新技术,如果你拥有大量的依赖关系,这将是一个巨大的痛苦。第三个选项是包管理器,如NPM,或Maven,或pip,或类似GNU / Linux发行版的软件管理器。

    至于关注,&#34;命令行?不要在浏览器中运行我的客户端脚本吗?&#34; - 是的,您在浏览器中运行代码,但您使用在命令行上运行的包管理器工具获取您的依赖项。命令行工具正在解决下载许多软件库的问题,这是一个完全独立于代码实际运行的上下文的任务。