我正在尝试在Windows 7(64位)计算机上安装phantomjs-node模块。安装“弱”模块时似乎存在node-gyp重建错误。
我已经跟随node-gyp windows installation steps并确保我安装了python并正确设置了路径。
我还有visual-cyp和node-gyp所需的其他要求。遗憾的是,我无法修复node-gyp重建错误。
我安装了以下
我在安装弱模块时遇到的错误是:
C:\ Program Files(x86)\ MSBuild \ Microsoft.Cpp \ v4.0 \ Microsoft.Cpp.InvalidPlatform.Targets(23,7):错误MSB8007:项目'weakref.vcxproj'的平台无效。平台=“64”。您可能会看到此消息,因为您正在尝试构建没有解决方案文件的项目,并且已指定了此项目不存在的非默认平台。
我遇到了上述问题,尝试了所有链接并正确安装了所有node-gyp要求。非常感谢。
答案 0 :(得分:5)
我几天来一直在寻找这个答案,而上述修复对我来说并不适用。
我找到的解决方案就像魅力一样: Cannot install node modules that require compilation on Windows 7 x64/VS2012
npm install phantom -msvs_version=2012
答案 1 :(得分: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
}
});
答案 2 :(得分:2)
尝试重新安装Windows SDK,它应该解决问题。
答案 3 :(得分: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 ++版本。
弱模块已安装但有警告,但这并没有造成任何问题。希望这会有所帮助。