Nodejs 在windows下install jsdom报contextify错

Nodejs 在windows下install jsdom报contextify错

有些 npm 包需要装 python 乃至 Visual Studio 来编译包。 所以那些不往 npm 传二进制的必须死啊必须死。

3 回复

Node.js 在 Windows 下安装 jsdom 报 contextify 错误

在 Windows 系统上安装某些 Node.js 包时可能会遇到编译错误。例如,在安装 jsdom 时,可能会遇到与 contextify 相关的错误。这是因为 contextify 是一个需要编译的 C++ 模块,而 Windows 上的编译环境可能未正确配置。

原因分析

contextify 需要使用 Python 和 Visual Studio 的编译工具来编译其源代码。如果你没有安装这些工具,npm 将无法成功编译 contextify,从而导致安装失败。

解决方案

解决这个问题的方法是确保你的系统中安装了所需的编译工具。以下是详细的步骤:

  1. 安装 Python

    • 访问 Python 官方网站 并下载最新版本的 Python。
    • 在安装过程中,请勾选 “Add Python to PATH” 选项。
  2. 安装 Visual Studio Build Tools

    • 访问 Visual Studio 下载页面
    • 选择 “Build Tools for Visual Studio” 进行下载和安装。
    • 在安装过程中,选择 “C++ build tools” 和 “Windows 10 SDK”。
  3. 设置环境变量

    • 打开命令提示符(cmd)并输入以下命令以验证 Python 和 Visual Studio 工具是否已正确安装:
      python --version
      cl
      
    • 如果一切正常,你应该能看到 Python 版本号和 cl 编译器的信息。
  4. 重新安装 jsdom

    • 在命令提示符中运行以下命令来安装 jsdom
      npm install jsdom
      

示例代码

假设你已经解决了编译问题,并成功安装了 jsdom,你可以编写一个简单的示例来测试 jsdom 是否工作正常:

const { JSDOM } = require("jsdom");

const dom = new JSDOM(`<!DOCTYPE html><p>Hello world</p>`);
console.log(dom.window.document.querySelector("p").textContent); // 输出 "Hello world"

将上述代码保存为 test.js 文件,然后运行:

node test.js

如果一切正常,你应该能在控制台看到输出 “Hello world”。

通过以上步骤,你应该能够成功解决在 Windows 下安装 jsdom 时遇到的 contextify 错误。


对于Node.js在Windows环境下安装jsdom时报contextify错误的问题,通常是因为contextify这个包依赖于C++的编译,而编译过程需要一些特定的开发工具,如Python和Visual Studio Build Tools。

解决方案:

  1. 安装Python

    • 首先确保已经安装了Python。推荐使用Python 2.7版本,因为某些npm包可能与Python 3.x不兼容。
    • 安装完Python后,记得将Python添加到系统的环境变量中。
  2. 安装Visual Studio Build Tools

    • 下载并安装Visual Studio Build Tools,选择“C++ build tools”工作负载。
    • 确保在安装过程中勾选了“C++ build tools”。
  3. 设置环境变量

    • 打开命令提示符(CMD),运行以下命令来设置环境变量:
      npm config set msvs_version 2019
      
  4. 清除缓存并重新安装

    • 清除npm缓存,然后重新安装jsdom
      npm cache clean --force
      npm install jsdom
      

示例代码

如果你仍然遇到问题,可以尝试使用以下步骤:

# 设置Python路径
npm config set python /path/to/python2.7

# 安装jsdom
npm install jsdom

确保你替换/path/to/python2.7为你的Python 2.7的安装路径。

总结

安装一些需要编译的npm包时,确保系统中安装了必要的开发工具,如Python和Visual Studio Build Tools,并正确设置了环境变量。如果一切顺利,你应该能够成功安装jsdom

回到顶部