为什么当子模块构建失败时,NPM会成功
Why does NPM success when submodules fail to build?
在使用npm时,我经常会遇到一些似乎毫无意义的错误-Visual Studio项目无法构建,构建工具(例如:python.exe/CL.exe)在命令行上不可用等。
我见过的一些包多次构建失败的例子:
- kerberos
- 节点gyp
- bcrypt
这些在npm install
期间向控制台抛出带有堆栈跟踪等的大错误消息,显然已经完全失败;然而,NPM像Larry一样愉快地运行着,我的Javascript应用程序和它的所有依赖项中有9次运行良好。
-
npm install
是否使用本地机器上可用的任何编译器递归地重新构建每个依赖项? -
如果是这样的话,考虑到即使是简单的软件包也可能有大量的依赖关系,如果没有安装全套编程语言和编译器,我怎么能做任何事情?
-
为什么这些依赖项失败并不一定意味着我的最终项目将无法使用?
-
如果构建失败的依赖关系是"可以"的,那么为什么还要麻烦拥有依赖关系呢?
由于在搜索"npm构建失败"等术语时发现了大量的资源,我一直无法找到这些问题的明确答案。
npm将成功,前提是这些依赖关系实际上被标记为可选。ws
模块就是一个例子,其中它们对两个可编译的插件有可选的依赖关系。如果构建失败,那么ws
只使用纯js回退实现。
插件有时被添加为可选依赖项的原因是,它们(通常)比纯js替代品执行得更快,即使是对于UTF-8验证或对缓冲区内容进行XOR之类的"简单"操作。
相关文章:
- 可以前端maven插件使用节点,npm已经安装
- 尽管链接成功并已成功下载,但未找到NPM模块
- 在另一个函数成功结束后调用该函数
- 在ajax成功后,cluetip不适用于首次点击活动元素
- 在Meteor项目中安装并包含npm模块后出错
- jQuery成功函数中的ajax成功函数
- 如何将本地依赖项添加到npm项目中
- 得到"TypeError:无法读取属性'filename'未定义的“;调用“npm start
- jQuery触发器点击未从AJAX成功工作
- 部署时使用npm包时发生Meteor错误
- 如何使用jQuery可编辑插件检查ajax是否成功完成
- 执行ajax成功函数-jQUERY
- 解析云代码错误:解析.错误{代码:141,消息:“未调用成功/错误”}
- 如何从servlet获取数据到ajax成功
- 成功回调永远不会被JSONP请求调用
- 将表单张贴到MailChimp,但显示动态成功页面
- ajax请求成功,但可以'我看不到我的数据
- I'我试图在文本区域中进行特定的输入,调用特定的javascript函数,但没有成功;不起作用
- 成功安装npm后未定义触控笔
- 为什么当子模块构建失败时,NPM会成功