找不到模块dtrace-provider

我有一个简单的nodejs应用程序抛出"Cannot find module './build/Release/DTraceProviderBindings'" 。 我在网上查找它,看起来像很多人在Windows上使用restify(这是我的情况,我在Windows 10上使用restify)有同样的问题。 显然, dtrace-provider是一个可选模块,用于调整 ,没有Windows的版本。 所以,我到目前为止的尝试:

  1. 更新节点到v6.2.0;
  2. 卸载所有模块并运行npm install --no-optional ;
  3. 只卸载restify并运行npm install restify --no-optional ;
  4. 而我最绝望的举动npm install dtrace-provider

我在github问题上发现的所有东西,我发现OSX用户和其他模块有相同的错误。 不知道还有什么要尝试。

注意:这个exception不会停止我的应用程序,甚至不会在控制台上打印错误,我只是注意到这是使用debugging器发生的,换句话说,我的应用程序运行正常,但是这种情况在后台继续发生。

我正在使用的其他模块列表:

 "dependencies": { "restify": "latest", "request": ">=2.11.1", "cheerio": ">=0.10.0", "xml2js": ">=0.2.0", "botbuilder": "^0.11.1", "applicationinsights": "latest" } 

切换到节点6.1后(以及重新安装节点模块不起作用),这对我有效:

  1. 安装并保存dtrace-provider

     $ npm install dtrace-provider --save 
  2. 删除“node_modules”文件夹

  3. 重新安装节点模块

     $ npm install 

我发现这个线程之前,你的尝试与Github的项目问题restify( https://github.com/restify/node-restify/issues/1093 )上的另一个解决scheme,并尽可能简化。

我最近在节点6.11.1上遇到了这个错误。 我跑npm rebuild dtrace-provider并解决了这个问题。

restify团队遵循尝试通过在try / catch块上要求加载模块的方法。 你应该忽略这个exception。

我知道这是一个老问题,但我想评论一下,以防其他人遇到同样的问题。

我的问题是由于在我的path中有括号。 /users/karlgroves/Dropbox (Personal)/foo/bar/bat/project...

把项目移动到一个没有parens的path为我工作。 您需要清除node_modules并重新安装。

我已经尝试了很多build议,但又得到了同样的错误。
最后,我find了解决这个问题的正确方法。
转到node.js网站并下载最新版本的node.js pkg
安装完毕后,重新安装你的软件,一切都会好的。

我最近在节点v8.8.1上遇到了这个错误,就像@Derek提到的那样,我运行了npm rebuild dtrace-provider并解决了这个问题。