【发布时间】:2017-06-16 07:20:42
【问题描述】:
我是 node 新手,但遇到了一个奇怪的问题。让我概述一下我的步骤:
- 安装一个具有
fabric依赖项的项目,该依赖项又依赖于一个名为contextify的旧包。该项目还使用node-gyp来安装插件。 - 运行
npm install,失败并显示:
- 谷歌搜索
otmpl->SetAccessCheckCallbacks(GlobalPropertyNamedAccessCheck,提供了一些链接(node-gyp、fabric),这些链接清楚地表明这是节点版本的一个已知问题。我有节点 7.4,这需要节点 6 或更早版本。 - 我意识到
fabric并没有被这个项目实际使用,所以我从我的package.json中删除了依赖项 - 我删除了我的
node_modules文件夹,然后再次运行npm install。同样的错误。
现在出现了奇怪的部分:npm install(它调用node-gyp rebuild)一直在尝试构建 contextify,尽管我可以证明它不再依赖于项目中的任何内容!
我尝试了什么:
- 删除我的节点缓存,由
npm config get cache输出(即rm -rf ~/.npm) - 卸载并重新安装
node-gyp - 试图寻找这个包可能潜伏在一些半安装状态的地方,例如
/usr/local/lib/node_modules
这些似乎都不起作用。有什么线索可以阻止npm 和node-gyp 尝试安装此软件包吗?我愿意完全放弃我的 node/npm/node-gyp 设置并从头开始重新安装,但不太确定如何正确执行此操作。
【问题讨论】:
-
万一有人遇到这个问题,我解决了这个问题。我认为问题在于
node是通过 Homebrew 安装的。我最终的“解决方案”是从我的机器上卸载所有版本的节点。重新安装 nvm(不使用 brew)并使用 nvm 安装节点 6.9.4。全局安装 node-gyp。使用它来构建我的项目,此时它仍然构建了 contextify,但成功了,因为它是节点 6。然后我厌倦了这个问题并继续工作,最终包消失了。似乎是缓存问题。 -
嘿@JeremyKun 感谢您的提示。我通过恢复到节点 6.10.2 解决了这个问题。顺便说一句,您是否尝试过吹走整个 node_modules 并重新安装新的 npm?
-
是的,我试过了,但没有帮助。
标签: json node.js npm-install node-gyp