什么是node-gyp

sel*_*t91 90 node.js node-gyp

任何人都可以解释我是什么node-gyp以及为什么它使用我的系统文件来构建Node.JS包.

  1. 如果我构建一个节点项目并在node-gyp内部使用它.
  2. 然后我只是对该项目进行了tar并转移到另一个系统
  3. 我在那里解开并尝试使用它

这种方法会起作用吗?

vuz*_*uza 102

node-gyp是一个编译Node.js插件的工具.Node.js Addons是本机Node.js模块,用C或C++编写,因此需要在您的机器上编译.使用node-gyp等工具编译后,可以通过require()其他任何Node.js模块访问它们的功能.

如果你做了你建议的模块将无法工作,你需要在你移动程序的系统上使用node-gyp编译/构建它.

node-gyp:https://github.com/nodejs/node-gyp

Node.js Addons:https://nodejs.org/api/addons.html

  • 必须承认,我看到一个模块没有npmjs使用node-gyp我通常跑10英里远 (16认同)
  • 令人兴奋的是,您现在可以克隆一个用NodeJS编写的(看起来)相对简单的Web应用程序,突然之间,您必须下载软件来编译用C和C ++编写的本机编码。最好的部分是当您遇到问题时,并且您确切地知道如何使用Web设计技能来解决此问题。 (15认同)
  • 仅供参考,我相信“gyp”是“生成你的项目”的缩写 (12认同)
  • @ Mr-Programs它通过绑定连接,您也需要编写 (3认同)
  • @JimAho 理想情况下,而且通常情况下,代码只是黑盒化的。好处是您可以使用快速且支持良好的工具来执行特定的操作,例如解析 xml,而不必等待可能更慢或更损坏的 js 端口。也就是说,只要有可能,我更喜欢原生 js,但我不确定这个立场是否有根据。此外,对于任何不专门依赖于操作系统的情况(如通知),C/C++ 应该具有很强的可移植性。此外,无论所述错误的来源如何,容易出现错误的软件包都不会被广泛采用。 (2认同)
  • @jiajianrong - 嗯,你有点回答了你自己的问题,**_Java_** 的主张是“一次编写,到处运行”。**_JavaScript_**,即“node.js”中的“js”从未做出过这样的声明。JavaScript 最初旨在为特定浏览器(即 Netscape)添加交互性,但后来成为所有浏览器活动的事实上的语言。Nodejs 将这种语言带入了浏览器以外的环境,并且在这样做时,它显然必须与这些附加环境进行交互。node-gyp 试图提供一些跨环境兼容性。 (2认同)