安装node成功npm失败_npm和Node成功背后的秘密历史

安装node成功npm失败

首次引入JavaScript时,它是一种编程玩具,可以工作,但在浏览器之间的工作方式不同。 但是,一些先驱者也看到了这种语言在后端的潜力,从而改变了应用程序开发的前景。 我们赶上了npm的CTO CJ Silverio ,他解释了为什么npm和Node变得如此受欢迎。 他们不仅可以构建更好的后端,而且还允许在前端使用React的新JavaScript框架生态系统


推动NodeJS成功的因素是什么?

CJ Silverio:在2009年左右,我们的创始人Isaac Schlueter对服务器端JavaScript感到兴奋。 大约在同一时间,Ryan Dahl和Node.js开始对该领域进行有趣的尝试。 这个想法是将JavaScript从浏览器中拉出来,并在浏览器上下文之外的计算机上运行它。 Dahl希望用JavaScript编写一个快速的Web服务器,并最终创建了一个有用的通用平台。 Schlueter对此感到很兴奋,他意识到需要一种共享代码的方法。

Ruby有RubyGems,Python有Python鸡蛋,Perl有CPAN。 Schlueter开始致力于Node的软件包管理器。 当时,它是JavaScript的几个竞争软件包管理器之一。 但是它恰好具有正确的功能集,并且也是用Node编写的。

因此,随着Node的发展,多年来,npm成为人们将JavaScript发布到共享存储库npm注册表以构建程序的一种方式。 它描述了一个使用JSON清单的程序包,用于从npm注册表中提取所需的内容,作为可用于构建软件的共享代码。

与其他JavaScript软件包管理器相比,npm有何不同?

Silverio:它引入了关于语义版本控制和依赖管理的两项创新。

语义版本控制如何工作?

Silverio:软件包均具有版本。 语义版本控制就像是程序员希望他们包含的版本的小指头。 一个包裹有三个数字。 最后是补丁号。 您小指发誓,“我想我正在修复错误。”

中间版本号表示“我想添加功能”。

第一个数字是主要版本更新,其中声明:“我要打败你了。”

这不是万能药,但这只是程序员之间关于其意图的足够的交流。 您总是无意间打断别人,但是语义版本控制可以让您发信号。

事实证明,这并不是解决每个人问题的解决方案,但是在滑道上有足够的油脂可以提供帮助。

npm如何解决依赖问题?

Silverio: 依赖地狱是人们扔掉的一个名词。 例如,您尝试依赖一个软件,而您依赖的其他软件也依赖于第一软件的不同版本。 在Java ,C和C ++中,这是一个非常困难的问题。 静态编译的任何内容都容易出现此问题,这基本上要求只有一个版本。 例如,如果我要使用OpenSSL ,则不可能有两件事需要静态编译语言的不同版本。

Node包含一种通过嵌套依赖项来解决此问题的机制。 他们想要什么版本都没关系。 两个模块可以调用包的不同版本,并且可以共存。

这些是如何催化后端开发的?

Silverio:这两件事对于人们开始在npm之上共享软件包非常有用,Node开始成功。 Schlueter同时在npm和Node上工作。 随着Node开始成功,人们开始编写更多JavaScript并共享更多JavaScript。

然后,真正编写了世界上大部分JavaScript的浏览器开发人员发现,Node可以让他们使用他们熟悉的语言使用正确的工具来更好地编写网站

那是npm和Node进入kaboom的时间。

JavaScript是一种非常流行的编程语言,因为它在浏览器中。 该工具使使用JavaScript编写代码变得更容易,并且可以共享您正在编写JavaScript,因此Web开发人员开始大量使用npm。

我们的首席运营官Laurie Voss投入了大量工作,喜欢制作npm吸收和使用的图表。 它不是指数的,但看起来却是指数的。

npm用户在过去七天内下载了50亿个软件包。 四年前,一周之内就是五千万。 有很多开发人员共享许多JavaScript,并且有习惯将npm用作资源。 每当您进行开发,进行自动化测试 ,运行构建环境时,它们都会引入新的软件包。

上周下载了500亿个Tarball。 大多数可能是持续集成测试。 当人们实际部署新应用时,他们将下载一次以进行新构建。

捆绑浏览器应用程序和编译后端应用程序的比较如何?

Silverio:Webpack和Browserify用于将软件包与浏览器应用程序捆绑在一起,类似于其他类型应用程序的编译器。 所有浏览器都运行JavaScript,但是方式与人们倾向于开发程序的方式不同。 开发人员使用很少的文件制作很少的模块。 部署到网站时,必须将所有内容都放入一个文件中。 人们使用捆绑工具来执行此操作。 名为Browserify的程序是第一个这样做的程序。

今天每个人都使用的是webpack。 另一个称为汇总 。 捆绑程序具有与编译器并行的功能。 他们以一种便于开发人员使用的形式获取源代码,并将其转换为最适合浏览器使用的形式。

就JavaScript实现之间的兼容性而言,浏览器制造商目前表现良好。 Webpack不必针对Microsoft Edge进行构建,而不必针对Google Chrome进行构建。 相同的已编译JavaScript将在这两个程序上运行。 这是JavaScript开发蓬勃发展的原因之一。 实际上只有一种JavaScript,并且它们都在使用一种浏览器对象模型。

只是Node服务器与浏览器不同。 没关系,因为它们是不同的东西。 您最终想要在开发时使用Node的便利功能。

使用NodeJS的秘密恐怖之处是什么?

Silverio:NodeJS作为服务器端JavaScript的秘密恐怖在于这两种语言是相同的,但是平台是不同的。 运行Node程序与在浏览器中运行JavaScript几乎相同。 但是环境不同。 节点可以读写文件系统。 例如,您可以将本地绑定绑定到计算机视觉库的Node。 这些是您无法在浏览器上执行的操作。

该程序可能无法在浏览器中运行。 在进行一些转换以使从Node获得的所有美好功能在浏览器中可用之后,它可能会运行。 这就是像webpack这样的工具。

npm如何通过免费获得软件包管理器来赚钱?

Silverio:我们出售您可以在内部运行的注册表版本,很快我们将宣布它为npm注册表即服务。 我们还出售安全产品,这对很多人来说是另一回事。 开源的缺点是它还包含许多不安全的库。 npm是一个人们可以共享JavaScript代码的地方。 作为首席技术官,我要问的下一个问题是“您从哪里得到的代码,使用起来安全吗?”

npm收购了^ Lift Security,自2013年成立以来,这些人一直是Node安全项目背后的专家。这增加了我们在JavaScript安全方面的专业知识,可用于查找和修复JavaScript安全并就所使用的内容是否安全做出决策。 我们有一个免费版本,每个使用npm的人都可以访问,当他们使用npm安装某些东西时,它将告诉他们如何修复它。

作为付费产品,可以提供更深入的分析和报告。 随着时间的推移,它还可以跨项目进行更多分析。 例如,我们可以告诉您何时有特定漏洞进入您的应用程序,以及随着时间的推移您所面临的风险。

我已经开发了运行了多年的Node应用程序。 人们在开发网站和发展这一事实是永恒的。

前端和后端开发人员的组合如何发生变化?

Silverio; 我们大约有1100万开发人员使用npm。 其中大多数是使用Node来执行此操作的前端浏览器开发人员。 许多人正在使用Node,但共享的代码可能与Node.js无关。 例如,React托管在npm上。 如果您想获得最新版本的React,可以使用npm,Yarn或与npm注册表对话的CLI命令来运行和安装它。

我把成功称为灾难。 您有一家初创公司,现在您已经成功了。 npm幸免于难,因为我们充分利用了CDN。

当前,npm的使用率大约是前端开发人员到后端开发人员的80:20. 两年前,大约是50:50. 节点至关重要,它被广泛用于编写单页Web应用程序。

npm的存在以及它的可用性和快速性使人们能够执行以前无法实现的新Web开发方法。 通过允许将管道视为开发人员的理所当然,它使人们可以在我们身上构建以前无法想象的东西。

当您通过执行Google搜索并转到jQuery网页来获取JavaScript时,您无法从许多小模块中构建复杂的东西,因为没有一种简便的方法可以找到它们并以合理的方式进行组装。 但是npm和Node之类的工具不一定使它简单明了,但至少是可行的。

语义版本控制不是完美的,但在大多数情况下都有效。 人们可以放心地使用该软件,npm会自动为他们检索组件。

翻译自: https://www.theserverside.com/blog/Coffee-Talk-Java-News-Stories-and-Opinions/The-secret-history-behind-the-success-of-npm-and-Node

安装node成功npm失败

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值