我有一个简单的nodejs应用程序,正在抛出"Cannot find module './build/Release/DTraceProviderBindings'"
。我在线查看它看起来很多人在Windows上使用restify时遇到同样的问题(这是我的情况,我在Windows 10上使用restify)。显然,dtrace-provider is a optional module for restify并没有Windows的版本。所以,到目前为止我尝试过:
npm install --no-optional
;npm install restify --no-optional
;dtrace-provider
。我在github问题上找到的所有东西,我在OSX用户和其他模块上看到了同样的错误。不知道还有什么可以尝试。
注意:此异常不会停止我的应用程序,甚至不会在控制台上打印错误,我只是注意到这是使用调试器发生的,换句话说,我的应用程序运行正常,但这仍然在后台发生。
我正在使用的其他模块列表:
"dependencies": {
"restify": "latest",
"request": ">=2.11.1",
"cheerio": ">=0.10.0",
"xml2js": ">=0.2.0",
"botbuilder": "^0.11.1",
"applicationinsights": "latest"
}
切换到节点6.1后,这对我有用(当重新安装节点模块不起作用时):
$ npm install dtrace-provider --save
$ npm install
在将您的尝试与Github项目问题上的另一个解决方案结合起来之前,我找到了这个线程,以求解决(https://github.com/restify/node-restify/issues/1093)并尽可能简化。
我最近在节点6.11.1
上遇到了这个错误。我跑了npm rebuild dtrace-provider
,解决了这个问题。
restify团队遵循尝试通过try / catch块要求加载模块的方法。你应该忽略这个例外。
我最近在节点v8.8.1上遇到了这个错误,正如@Derek提到的那样,我运行了npm rebuild dtrace-provider
并解决了这个问题。
我知道这是一个老问题,但我想评论它,以防其他人有同样的问题。
我的问题是由于我的道路上有括号。 /users/karlgroves/Dropbox (Personal)/foo/bar/bat/project...
将项目移动到没有parens的路径为我工作。你需要消灭node_modules
并重新安装。
我已经尝试了很多建议,但又得到了同样的错误。 最后,我找到了解决这个问题的正确方法。 去node.js website并下载最新版本的node.js pkg。 安装完成后,重新安装软件,一切都会好的。
TL;博士; dtrace-provider使用了node-gyp,它需要python版本> = 2.5而不是3.5
我在OSX上遇到了这个问题,并发现了一个显示使用环境变量V=/Users/your_user/your_project npm i dtrace-provider
的帖子
这让我知道有一个依赖node-gyp
未能建立...一旦我知道问题是这个模块能够集中我的注意力node-gyp
故障排除。
这导致一些日志输出表明我的python版本3.5
不受支持,它需要版本>= 2.5
。
去了下载python 2.7.x
并检查了/usr/bin/python 2.7.x
以确保它在那里。卸载了最终需要这个模块的节点模块,然后使用npm cache clean
然后重新安装模块,这次它似乎拿起了正确的python版本才能构建。
希望这有助于某人=)