node.js - 为什么每个人都使用 Node.js 和 NPM 来编译 JavaScript 库?

标签 node.js javascript npm

<分区>

我真的很困惑 JS 社区中使用 Node.js 和 NPM 及其 JS 库的每个人。为什么我们必须采取如此极端的措施?这为我们解决了什么问题?

[编辑] 我想我的问题没有切中要害。

  1. Ember.js、Batman.js 和最近雅虎的 Mojito 等框架要求我使用 node.js - 为什么要依赖 Node.js 和 NPM?
  2. 我们为什么要让事情变得复杂? “如果你还没有,你需要安装 node.js ......”你读了这样的消息,然后你就被关闭了。

为什么? JS 中已经存在大量问题 - 太多活跃的 JS 库/框架可供选择 - 根据 JS 库的记录,大多数很快就会变得不活跃。需要查找的东西太多,通常会导致应用程序中有多个框架——依赖管理、路由器、MVC、模板等。除此之外,我们正在使用 Node.js 来使用这些库/框架……如何这会将这些库的使用推送给新的 JS 开发人员吗? JS 本来就是简单的!

最佳答案

"If you haven't already, you'll need to install node.js..." You read messages like this and you're turned off. Why?

NodeJS 是 Google 的 V8“独立运行”。它是一个带有附加低级 API(网络、I/O 等)的 JS 引擎。 NodeJS 为仅限于在浏览器上工作的 JS 开发人员提供了“缺失的平台”。

why this dependency on Node.js and NPM?

Node.js 除了用作应用程序(服务器、代理、机器人等)外,还可以用作工具构建和辅助开发。以 Grunt 为例,它是一个类似于 Make 的可编写脚本的自动化工具。只需使用普通 JS 编写脚本,您无需学习其他工具或语言即可实现自动化。另一个工具是 Bower,它是一个前端包管理工具。您需要做的就是 bower install jquery 并使用该命令安装 jquery。无需手动下载、复制和粘贴。

另一方面,NPM 是 Node.js 的包管理器。它是一个管理您在 NodeJS 上使用的模块的程序。无需手动列出您的模块,也无需在其他地方开发时记住它们。只要你有 NPM 为你制作的包列表,重新安装只是 npm install 的问题。

Why are we making things complex?

我们不是。事实上,我们正在为开发人员简化它们。无需担心您的工作流程、管理您的库或手动执行操作,您可以将这些任务卸载到 NPM 上存在的一些模块。然后您就可以专注于您实际正在做的事情。

On top of this we are using Node.js to use these libs/frameworks... How will this push usage of these libraries to new JS developers? JS was meant to easy!

如上所述,NodeJS 是一个多功能平台。它可以用作服务器(Connect、Express)、自动化工具(Grunt)、包管理系统(使用 NPM、Bower 等)、测试平台(QUnit、Mocha)、代理、游戏服务器、聊天机器人.

这很有用,尤其是对 JS 开发人员而言,因为这些在 JS 中是不可能的。

There is already a problem of plenty in JS - far too many active JS libs/frameworks to choose from - going by the record of JS libs most will become inactive soon. There are just too many things to look for that often result in multiple frameworks in an app - dependency management, routers, MVC, templating, etc.

嗯,有一套丰富的框架就好了。学习其中一些后,您的工作将减少一半。实现多样性也很好,可以解决不同的编码风格和不同的实现方法。一些库源于不同的方法,而另一些则源于其他库的不兼容性和/或不完整性。

开发人员正在努力工作,通过标准化 JS 怪癖(因为浏览器 vendor 似乎无法做正确的事情来遵循标准)来让其他开发人员的生活更轻松,并且大多数都是自愿完成的,例如免费啤酒 -你应该为此感到高兴。此外,无论如何也没有人强制您使用。

关于node.js - 为什么每个人都使用 Node.js 和 NPM 来编译 JavaScript 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10585211/

相关文章:

javascript - 创建新事件时尝试将事件 ID 保存给创建它的用户...错误

mysql - 在 Node 上 MySQL 与 JSON

javascript - 如果任何元素为 true,如何迭代任何数组以返回值 "true"

javascript - 在选项卡关闭时清除 PHP session ?

javascript - 使用多个按钮渲染局部 View

javascript - Webpack 2 : How do I generate a bundle. js 来自 Bootstrap 预制模板?

node.js - 如何知道电脑的RAM总量?

node.js - Amazon Lex 在 Lambda Fulfillment 上 30 秒内超时

angularjs - Angular 应用程序无法在 Windows 操作系统中打开

angularjs - 从 Angular.js 中的 Node.js 获取 json 1