2013-12-17 2 views
2

Я пытаюсь установить модуль phantomjs-node на машине с Windows 7 (64-разрядной). Кажется, что при установке «слабого» модуля возникает ошибка node-gyp rebuild.Ошибка node-gyp rebuild не удалась при установке «слабого» модуля на windows 7 для phantomjs

Я следил за node-gyp windows installation steps и гарантировал, что у меня установлен python, и его путь установлен правильно.

У меня также есть визуальные C++ и другие требования, необходимые для node-gyp. К сожалению, я не смог установить ошибку перестройки узла-gyp.

Я установлены следующие компоненты

  • узел - 0.8.14 (64 бит)
  • питон - 2.7.3 (64 бит)
  • Microsoft Visual C++ 2010 (64 бит, а также установлен 32-битный на всякий случай, так как 64 бит не помогло)
  • Visual Studio 2010 (Pro) и Visual Studio 2012 (выразить, как Интернет и рабочий стол)
  • Windows SDK 7.1

Ошибки я получаю при установке слабых модуля является:

C: \ Program Files (x86) \ MSBuild \ Microsoft.Cpp \ v4.0 \ Microsoft.Cpp.InvalidPlatform.Targets (23,7): ошибка MSB8007: Недопустимая платформа для проекта «weakref.vcxproj». Платформа = «64». Вы можете видеть это сообщение, потому что пытаетесь создать проект без файла решения и указали нестандартную платформу, которая не существует для этого проекта.

Я застрял в вышеупомянутой проблеме, пробовав все ссылки и правильно установил все требования к узлу-gyp. Помощь очень ценится.

ответ

1

После долгих экспериментов я смог исправить эту проблему.

Я переустановил Windows sdk 7.1, на этот раз я изменил путь по умолчанию, где происходит установка sdk. Ранее было SDK по умолчанию установлен для получения

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

, но после того, как установка была завершена, когда я посмотрел в C: \ Program Files \ Microsoft SDK, я не смог найти Windows sdk, потому что он был установлен в папку C: \ Program Files (x86) \ Microsoft SDK \ Windows. Поэтому при повторной установке окон sdk я изменил путь по умолчанию, который указывал на файлы C: \ Program Files \ Microsoft SDK на C: \ Program Files (x86) \ Microsoft SDK, и это помогло.

Перед повторной установкой windows sdk обязательно удалите все визуальные версии C++, которые были установлены.

Слабый модуль был установлен, но с предупреждением, которое не вызывало никаких проблем. Надеюсь это поможет.

2

Попробуйте переустановить Windows SDK, и он должен исправить проблему.

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 
    }   
});