gpt4 book ai didi

javascript - 为什么子模块构建失败时 NPM 会成功?

转载 作者:行者123 更新时间:2023-11-28 18:54:38 26 4
gpt4 key购买 nike

经常使用npm我遇到过一些看似毫无意义的错误 - Visual Studio 项目无法构建、构建工具(例如:python.exe/CL.exe)在命令行上不可用等。

我见过多次无法构建的包的一些示例:

  • kerberos
  • Node gyp
  • bcrypt

这些在 npm install 期间向控制台抛出带有堆栈跟踪等的大错误消息,显然完全失败了;然而,NPM 和 Larry 一样快乐,我的 Javascript 应用程序及其所有依赖项十有八九都工作正常。

  1. npm install 是否使用本地计算机上可用的任何编译器递归地重新构建每个依赖项?

  2. 如果是这样,考虑到即使是简单的包也可能具有大量的依赖项,如果没有安装全套编程语言和编译器,我如何能够做任何事情?

  3. 为什么这些依赖项失败并不一定意味着我的最终项目将无法使用?

  4. 如果无法构建的依赖项是“正常”的,那么为什么要费心去建立依赖项呢?

由于在搜索“npm build failed”等术语时发现了大量资源,因此我无法找到任何明确的答案。

最佳答案

如果这些依赖项实际上被标记为可选,则 npm 将会成功。 ws 模块就是一个例子,它们对两个可编译插件有可选的依赖关系。如果构建失败,则 ws 仅使用纯 js 回退实现。

有时将插件添加为可选依赖项的原因是,它们(通常)比纯 js 替代品执行得更快,即使对于像 UTF-8 验证或异或内容这样“简单”的事情也是如此。一个缓冲区。

关于javascript - 为什么子模块构建失败时 NPM 会成功?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33863529/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com