【问题标题】:npm install jsdom error on windows?Windows上的npm安装jsdom错误?
【发布时间】:2012-04-02 02:45:32
【问题描述】:

我已经在我的 Windows 电脑上安装了 nodejs。它工作正常。但是当我尝试使用安装 jsdom "npm install jsdom" 我是被这个错误提示的。

节点 "C:\Program 文件\nodejs\node_modules\npm\bin\node-gyp-bin\....\node_modules\node-gyp\bin\node-gyp.js" 重建信息 如果它以 ok 结束,则有效
呃!错误:似乎没有安装 Python
在 failNoPython (C:\Program 文件\nodejs\node_modules\npm\node_modules\node-gyp\lib\configure.js:78:14) 在 Object.oncomplete (C:\Program 文件\nodejs\node_modules\npm\node_modules\node-gyp\lib\configure.js:66:11) 呃!不好
npm WARN 可选依赖失败,继续 contextify@0.1.2
jsdom@0.2.13 ./node_modules/jsdom
+-- cssom@0.2.3 +-- htmlparser@1.7.5

谁能帮我解决这个问题?

【问题讨论】:

  • 错误:似乎没有安装python,看来你必须安装python
  • 是的,但是在收到错误消息后,我从 python.org 下载并安装了 pythong,但是错误仍然出现.. 谢谢
  • @stewe 是否需要特定版本的 Python?它应该是 Python 2 还是 Python 3?我仍在努力解决这个问题。
  • 如果您不需要 jsdom/Contextify 的完整功能集,Cheerio 是: * 更快 * 更容易安装 * 对损坏的 HTML 更有弹性(与 jsdom 相比)* 并提供了大部分 jQuery 函数,你会在服务器端使用 matthewmueller.github.com/cheerio
  • 你必须安装 Python 2.x 而不是 3.x

标签: node.js npm jsdom


【解决方案1】:

我在 Windows 7 (x64 Ultimate) 上遇到了同样的问题,经过数小时的搜索和试验,我是这样解决的。请按照完全相同的顺序执行以下步骤:

  1. 安装 Visual Studio 2010/2012 C++(Express 或更高版本)
  2. 安装 Windows SDK 7.1
  3. 安装“Microsoft Visual C++ 2010 Service Pack 1 Compiler Update for the Windows SDK 7.1”
  4. 安装 GTK (C:\GTK)
  5. 安装 Python (C:\Python27)
  6. 安装 node.js (x86)
  7. 将 [node.js] 添加到路径 (C:\Program Files (x86)\nodejs\;)
  8. 将 [python] 添加到路径 (C:\Python27\;)
  9. 将 [GTK] 添加到路径 (C:\GTK\bin;)
  10. 添加指向“C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin”的 [WindowsSDKDir] 系统变量
  11. 以管理员身份运行“Windows SDK 7.1 命令提示符”
  12. 使用“setenv /x86”将环境设置为 x86
  13. 将目录更改为“C:\Program Files (x86)\nodejs\”
  14. 运行“npm install -g npm”
  15. 运行“npm update -g npm”
  16. 运行“npm install -g node-gyp”
  17. 运行“node-gyp configure build”
  18. 运行“npm install jsdom”
  19. 运行“npm install ajax”
  20. 运行“npm install http-server”
  21. 运行“npm install jquery”
  22. 运行“npm install xmlhttprequest”
  23. 运行“npm 更新”

我希望这会有所帮助。

【讨论】:

  • 虽然我没有安装 GTK,但对我有用。非常感谢这个很棒的答案
  • 这对我也有用。这里也没有GTK。不过,有几个对我不利。为了安装 Windows SDK 7.1,我必须确保卸载所有 Visual Studio 2010 Redistributables。另外,我必须运行node-gyp rebuild --msvs_version=2012。谢谢!
  • 我必须将 C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin 添加到 PATH 以便 setenv 工作
  • 感谢伟大的发现.. 仅 NodeJS 的依赖项太多...在 Mac 上可以更简单吗?
【解决方案2】:

这里有一个很好的让 JSDom 在 Windows 上工作的指南:http://www.steveworkman.com/node-js/2012/installing-jsdom-on-windows/

【讨论】:

  • 很遗憾,链接的文章已不存在。
【解决方案3】:

jsdom 依赖于 contextify,它最近才支持 windows。你需要 python 和一个 C++ 编译器来安装它。

您可能还需要执行以下操作

npm install -g node-gyp
node-gyp configure

【讨论】:

  • 我已经用 c++ 编译器安装了 cygwin 和 Mingw,收到此错误后我还从 python.org 安装了 python,但错误仍然存​​在。
【解决方案4】:

对于 Windows 8 64 位,安装 zmq 和 protobuf,以下对我有用:

首先,安装Visual Studio 2012

然后,在命令提示符下(在您的项目目录中):

SET VisualStudioVersion=11.0
npm install zmq
npm install protobuf
npm install jsdom

【讨论】:

  • 这对我有用,但我怀疑不是每个人都会安装 Visual Studio 2012。
【解决方案5】:

jsdom 使用 contextify 在 DOM 上运行 JavaScript。而contextify 需要本机 C++ 编译器。根据the official readme,在Windows平台上,必须安装:

  1. 适用于 Windows 的 x86 版本 Node.js 的最新副本,而不是 x64 版本。 (默认应该没问题)
  2. Visual C++ 2010 Express 的副本。 (或任何更新的版本)
  3. Python 2.7 的副本,安装在默认位置 C:\Python27

【讨论】:

    【解决方案6】:

    如果您已经安装了 python,则需要将 python 安装目录添加到 PATH 环境变量中。

    假设 python.exeC:\Python32\ 目录下,在 DOS 提示符下你需要输入:

    set PATH=%PATH%;C:\Python32\;

    然后:

    node-gyp configure

    应该可以正常工作,没有那个错误。

    【讨论】:

      【解决方案7】:

      解决了这个问题将近半年,看了所有相关的论坛,终于找到了解决办法。

      就我而言,我所做的很简单,因为我在这台计算机上没有使用很多应用程序。

      我的 Windows 8.1 安装了许多可能会混淆 NodeJS 的程序(框架、VS 插件等)。

      所以我只是这样做了:

      • 从 MS 中删除了我安装过的所有程序。
      • 已卸载 Nodejs
      • 我确实用CCleaner 清理了注册表
      • 删除了 Python、Node-gyp 和其他与 Node.js 相关的应用程序

      然后我乐观地重新安装了 Node.js,因为 JSdom 安装正确,但在运行我的项目时崩溃了。所以我搜索了新的错误,它再次有一个简单的解决方案。 我必须安装旧版本的 JSdom。

      npm install jsdom@4.2.0
      

      最后,一切正常。希望能帮助任何人解决这个问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-19
        • 2014-11-21
        • 2018-12-25
        • 2015-05-24
        • 1970-01-01
        • 2018-03-12
        相关资源
        最近更新 更多