【问题标题】:Segmentation Fault: 11 doing anything with node分段错误:11 对节点做任何事情
【发布时间】:2015-10-01 16:11:10
【问题描述】:

这个问题似乎被问了很多,但大多数似乎与C 开发直接相关。

我最近/一直在做很多 Node 开发,我遇到了这个错误Segmentation Fault: 11。在阅读了 StackOverflow 上的大部分(如果不是全部)问题及其各自的答案之后,这让我回到了开头......

这是我所知道的:

  • 当我在大多数但不是所有项目上运行像 npm start 这样简单的东西时会发生这种情况
  • 这种情况发生在诸如 gulpgrunt 之类的构建系统中
  • 我同事的机器上似乎没有发生此错误
  • 我从一般研究中知道这似乎是一个内存问题
    • 当我从iTerm 运行时,我得到它以及当我从内部运行时说Webstorm
    • 我有 16 GB 的内存,我运行 iStats,但当我收到此错误时,我没有看到内存使用量有任何上升。

我使用nvm,我希望使用不同版本的节点运行时,但它似乎发生在所有版本中。

我已经完全 nuked node 和 nvm 希望能修复它,但可惜它没有。

还有什么其他的技巧或窍门吗?

【问题讨论】:

  • 删除node_modules 目录并使用npm install 重新安装依赖项可能会有所帮助。我注意到一些本机模块(在安装时使用 node-gyp 构建)在节点升级后往往会出现此错误。
  • 一个“有缺陷的 Javascript 解释器”可能是一个动态链接的解释器,它是针对一个或多个原生组件的不同版本构建的,而不是运行时呈现给它的组件。
  • 谢谢@JohnBollinger 我知道这不是 javascript 问题。为何如此狡猾?

标签: c++ c node.js


【解决方案1】:

最近随着人们更新到 Node 4.x,这种情况已经很常见了。编译的附加组件需要重新构建。

尝试快速简单的方法是在您的项目上运行npm rebuild

如果这不起作用,请尝试删除 node_modules 目录,然后运行 ​​npm install

如果这不起作用,您的项目或依赖项的代码与需要更新的本机内容交互。在这种情况下,最简单的做法可能是回到以前版本的 Node.js。 (但最好的办法是更新您的项目和/或提交其依赖项的拉取请求以修复它们。您可以在the NAN repo 找到更多详细信息。)

【讨论】:

    猜你喜欢
    • 2017-01-26
    • 2019-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多