3

Windows 7 (64 ビット) マシンに phantomjs-node モジュールをインストールしようとしています。「弱い」モジュールのインストール中に node-gyp 再構築エラーが発生したようです。

node-gyp Windows インストール手順に従い、python がインストールされ、そのパスが正しく設定されていることを確認しました。

node-gyp に必要な Visual C++ およびその他の要件もあります。残念ながら、node-gyp の再構築エラーを修正できませんでした。

私は以下をインストールしています

  • ノード - 0.8.14 (64 ビット)
  • python-2.7.3(64ビット)
  • Microsoft Visual C++ 2010 (64 ビット、64 ビットでは役に立たなかったので、念のため 32 ビットもインストール)
  • Visual Studio 2010 (Pro) および Visual Studio 2012 (高速、Web とデスクトップの両方)
  • Windows 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 を調べたときにインストールが完了した後、代わりに C:\Program Files (x86)\Microsoft SDKs\Windows フォルダーにインストールされたため、Windows SDK が見つかりませんでした。そのため、Windows SDK を再インストールする際に、C:\Program Files\ Microsoft SDK を指していたデフォルト パスを C:\Program Files (x86)\ Microsoft SDK に変更しました。

Windows SDK を再インストールする前に、インストールされているすべてのビジュアル C++ バージョンをアンインストールしてください。

弱いモジュールがインストールされましたが、警告が表示されましたが、問題は発生しませんでした。お役に立てれば。

于 2013-12-17T09:58:09.813 に答える