json - 即使从 package.json 中删除它,node-gyp 也会尝试建立依赖关系

标签 json node.js npm-install node-gyp

我是 Node 的新手,但遇到了一个奇怪的问题。让我概述一下我的步骤:

  1. 安装一个具有 fabric 依赖项的项目,该依赖项又依赖于一个名为 contextify 的旧包。该项目还使用 node-gyp 来安装附加组件。
  2. 运行 npm install,失败并显示:
contextify@0.1.15 install /path/to/project/node_modules/contextify
node-gyp rebuild

  CXX(target) Release/obj.target/contextify/src/contextify.o
....
../src/contextify.cc:150:16: error: no member named  'SetAccessCheckCallbacks' in 'v8::ObjectTemplate'
        otmpl->SetAccessCheckCallbacks(GlobalPropertyNamedAccessCheck,
        ~~~~~  ^
...
  1. 谷歌搜索 otmpl->SetAccessCheckCallbacks(GlobalPropertyNamedAccessCheck, 给出了一些链接(node-gypfabric),清楚地表明这是 Node 版本的一个已知问题。我有 Node 7.4,并且这需要 Node 6 或更早版本。
  2. 我意识到该项目实际上并未使用 fabric,因此我从我的 package.json 中删除了依赖项
  3. 我删除了我的 node_modules 文件夹,然后再次运行 npm install。同样的错误。

现在出现了奇怪的部分:npm install(调用 node-gyp rebuild)一直在尝试构建 contextify,即使我可以证明它不再依赖于项目中的任何内容!

我尝试过的:

  • 删除我的 Node 缓存,如 npm config get cache 的输出(即 rm -rf ~/.npm)
  • 卸载并重新安装 node-gyp
  • 尝试寻找这个包可能潜伏在某种半安装状态的地方,例如 /usr/local/lib/node_modules

这些似乎都不起作用。有什么线索可以阻止 npmnode-gyp 尝试安装这个包吗?我愿意完全放弃我的 node/npm/node-gyp 设置并从头开始重新安装,但不太确定如何正确地做到这一点。

最佳答案

尝试将 Node 版本降级到 6

npm install node@6

关于json - 即使从 package.json 中删除它,node-gyp 也会尝试建立依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41947693/

相关文章:

java - 将数据从 Bean 传递到 jsf 页面上的 javascript。谷歌 API 说明

javascript - d3 强制仅在单击时显示某些链接和节点

node.js - 使用 AWS Pinpoint 通过 Lambda 函数发送通知

powershell - yarn 已安装但不起作用。命令被识别,但没有 yarn 命令做任何事情。 Windows Powershell

javascript - 'npm add' 和 'npm install --save' 之间的区别?

node.js - 如何解决node-sass安装脚本错误

xml - 将 JSON 转换为 XML 并返回是否有严格的规则?

javascript - 将对象添加到 json 文件 - Node.js

javascript - 如何使用nodejs Zeromq库设置双向消息 channel ?

javascript - 使用 shouldjs 检查无序数组中的值