3

我正在尝试在 Windows 7(64 位)机器上安装 phantomjs-node 模块。安装“弱”模块时似乎存在 node-gyp 重建错误。

我遵循了node-gyp windows 安装步骤,并确保我安装了 python 并且它的路径设置正确。

我也有 node-gyp 所需的 Visual c++ 和其他要求。可悲的是,我无法修复 node-gyp 重建错误。

我安装了以下

  • 节点 - 0.8.14(64 位)
  • 蟒蛇 - 2.7.3(64位)
  • Microsoft Visual C++ 2010(64 位,也安装了 32 位以防万一,因为 64 位没有帮助)
  • Visual Studio 2010 (Pro) 和 Visual Studio 2012(快速,Web 和桌面)
  • 视窗 SDK 7.1

我在安装弱模块时不断遇到的错误是:

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.Cpp.InvalidPlatform.Targets(23,7):错误 MSB8007:项目“weakref.vcxproj”的平台无效。平台='x64'。您可能会看到此消息,因为您正在尝试构建没有解决方案文件的项目,并且指定了该项目不存在的非默认平台。

我被上述问题困扰,尝试了所有链接并正确安装了所有 node-gyp 要求。非常感谢帮助。

4

4 回答 4

5

我一直在寻找这个答案好几天了,上面的修复对我不起作用。

我发现像魅力一样工作的解决方案在这里: 无法在 Windows 7 x64/VS2012 上安装需要编译的节点模块

npm install phantom -msvs_version=2012
于 2014-02-21T16:59:02.113 回答
3

这些解决方案都不起作用,或者未知数太多,所以我需要一个更简单的解决方案。我所做的是使用https://github.com/sgentle/phantomjs-node页面上建议的方法,它说

dnodeOpts property could help you to control dnode settings, so you could disable weak by setting it false to avoid that complicated installations.

var phantom = require('phantom');

phantom.create(function (ph) {
  ph.createPage(function (page) {
    /* the page actions */
  });
}, {
  dnodeOpts: {
    weak: false
  }
});

因此,假设您在 Windows 上(否则您可能根本不会遇到此问题),只需将 dnodeOpts 设置为 false,如上所示,然后结束 phantom.create 函数。例如,如果您使用的是入门代码:

phantom.create(function (ph) {
    ph.createPage(function (page) {
        page.open("http://www.google.com", function (status) {
          console.log("opened google? ", status);
          page.evaluate(function () { return document.title; }, function (result) {
            console.log('Page title is ' + result);
            ph.exit();
          });
        });
    });
}, {
    dnodeOpts: {
        weak: false
    }        
});
于 2014-10-08T18:37:34.490 回答
2

尝试重新安装 Windows SDK,它应该可以解决问题。

于 2013-12-20T07:00:14.137 回答
1

经过多次试验,我能够解决这个问题。

我重新安装了 windows sdk 7.1,这次我更改了安装 sdk 的默认路径。早些时候,sdk 默认安装到

C:\Program Files\Microsoft SDKs\Windows\v7.1

但是当我查看 C:\Program Files\Microsoft SDKs 时安装完成后,我找不到任何 windows sdk,因为它安装在 C:\Program Files (x86)\Microsoft SDKs\Windows 文件夹中。因此,在重新安装 windows sdk 时,我将指向 C:\Program Files\ Microsoft SDKs 的默认路径更改为 C:\Program Files (x86)\ Microsoft SDKs,这很有帮助。

在重新安装 windows sdk 之前,请确保卸载所有已安装的 Visual c++ 版本。

弱模块已安装但带有警告,但这并没有引起任何问题。希望这可以帮助。

于 2013-12-17T09:58:09.813 回答