Node.js npm 安装过程中 EBUSY 错误的分析与解决方案

Node.js npm 安装过程中 EBUSY 错误的深度分析与解决方案

在 Node.js 的开发过程中,使用 npm 进行安装是一个非常常见的操作。但是,有时候用户在执行 npm install 时可能会遇到一个非常令人困惑的错误——npm error code EBUSY。这个错误在很多 Windows 用户以及某些特定系统环境中相对常见,具体原因可能比较复杂,需要多方面的排查和解决。

一、理解错误代码 EBUSY

EBUSY 是一个标准的系统错误代码,代表某些资源正处于繁忙状态,因此无法完成请求的操作。在 npm 运行中出现 EBUSY,一般表明 npm 试图访问的某个文件或目录已经被其他进程锁定或占用。这种情形多出现在 Windows 系统中,因为 Windows 对于文件锁定和文件占用的处理与 Unix 系统有所不同。Windows 更容易对正在使用的文件进行占用,因此会导致 EBUSY 错误的频繁出现。

二、EBUSY 错误的常见原因分析

为了更好地理解和解决 EBUSY 错误,首先需要分析可能的原因。主要可以从以下几个角度进行考虑:

1. 文件或目录被其他进程占用

在进行 npm 安装时,文件可能正被其他程序占用,比如:

  • 编辑器、IDE 或代码相关工具正在使用该目录下的文件。
  • 系统防病毒软件扫描该目录并锁定了文件。
  • 其他的 npm 实例或 Node.js 服务正在使用同一个目录下的文件。

这类问题通常出现在操作系统试图对某些文件或文件夹进行独占访问时,而 npm 正尝试对这些资源进行读取或写入操作,导致冲突。

2. 资源竞争导致的锁定

某些系统进程,尤其是在 Windows 系统中,可能会导致文件系统资源出现竞争。例如:

  • Windows 系统可能会自动扫描下载或创建的文件。
  • 防病毒软件可能对 npm 安装的包进行扫描,导致文件暂时无法访问。

由于这些进程对文件系统的干预,npm 可能无法即时完成文件的访问或修改,最终导致 EBUSY 错误。

3. Node.js 版本不兼容或 npm 错误

特定版本的 Node.js 和 npm 本身可能会存在一些 bug 导致类似的问题。例如:某些较旧的 npm 版本在处理并行下载和解压缩时,可能会遇到与文件访问相关的冲突。在这种情况下,更新 npm 或 Node.js 通常可以解决问题。

4. npm 缓存损坏

npm 通过本地缓存机制来提高安装速度。然而,缓存损坏可能会导致 npm 尝试访问错误的资源,导致 EBUSY 错误。尤其在执行多次安装、卸载或由于一些意外中断的安装任务后,缓存可能损坏。

三、如何逐步排查和解决 EBUSY 错误

对于 npm error code EBUSY 的解决,建议采取以下几个步骤进行逐步排查。

1. 确保文件或目录未被其他进程占用
  • 关闭可能占用文件的程序:在运行 npm install 之前,请确保你已经关闭了所有可能正在使用相应目录下文件的程序。例如,关闭 IDE(如 VS Code、WebStorm 等)、文件管理器窗口等。由于这些程序可能正在监控文件的变化,从而占用了某些文件,导致安装失败。
  • 重启计算机:如果不确定哪些进程正在占用文件,可以尝试重启计算机,以便释放所有文件锁定。重启通常是最直接且有效的方式来解决文件被占用的问题。
2. 临时禁用防病毒软件

许多防病毒软件会扫描系统中新下载的文件,尤其是对大量文件和包依赖的操作(如 npm install)时可能引发 EBUSY 错误。可以尝试临时禁用防病毒软件,完成安装后再重新启用。需要特别注意的是,在操作过程中保持谨慎,不要在禁用防病毒软件期间访问不受信任的网站或下载其他文件。

3. 更新 Node.js 和 npm

确保你的 Node.js 和 npm 是最新版本,因为较旧的版本可能包含一些已知的 bug,导致类似 EBUSY 的错误。可以使用以下命令更新 npm:

npm install -g npm@latest

对于 Node.js,可以访问官方的 Node.js 网站下载安装最新版本,或者使用 Node Version Manager(nvm)来管理和更新 Node.js。

4. 使用管理员权限运行命令

在 Windows 中,权限不足也可能导致文件访问失败。你可以尝试用管理员权限来运行命令提示符,并在管理员模式下执行 npm install。具体操作是:右键点击“命令提示符”,选择“以管理员身份运行”,然后重新执行安装命令。

5. 清除 npm 缓存

如果 EBUSY 错误与缓存相关,可以尝试清理 npm 缓存来解决问题。使用以下命令来清理 npm 缓存:

npm cache clean --force

执行这条命令后,npm 会重新下载所需的包,从而避免因缓存损坏而引起的错误。

6. 使用 --no-bin-links 选项

在某些特定环境下,符号链接可能会导致 EBUSY 错误。可以尝试在安装命令中添加 --no-bin-links 选项来避免创建符号链接。

npm install --no-bin-links
7. 改变文件或目录的权限

对于 Windows 系统中的权限问题,可以手动更改目录或文件的权限,确保 npm 在执行操作时有足够的权限。可以右键点击相关目录,选择“属性”,进入“安全”选项卡,确保当前用户具有读取和写入的权限。

8. 删除 node_modulespackage-lock.json

如果某些包的安装发生冲突,可能导致文件锁定或占用。可以尝试删除 node_modules 文件夹以及 package-lock.json 文件,然后重新运行 npm install

rm -rf node_modules package-lock.json
npm install

这样做会强制 npm 重新下载所有依赖,解决由于冲突或部分安装失败导致的问题。

9. 使用 Yarn 作为替代

如果反复尝试 npm install 仍然遇到问题,可以尝试使用 Yarn 作为替代包管理器。Yarn 也是一个非常受欢迎的 JavaScript 包管理工具,在处理并行依赖管理上有一定的优化,有时可以有效避免类似的 EBUSY 错误。

yarn install

安装 Yarn 可以通过以下命令:

npm install -g yarn
四、深入探讨潜在的环境因素

在一些复杂的开发环境中,npm error code EBUSY 的原因可能不仅限于上述原因。在对上述方法进行排查后,仍然可能存在一些更为深层次的问题,这需要对特定环境进行一些更详细的探讨。

1. 系统环境的配置

不同操作系统对于文件占用和资源管理的策略各不相同。例如:

  • Windows 特性:Windows 操作系统中的文件访问限制可能会比 Unix 系统更为严格。如果使用 Windows 作为开发平台,可以考虑优化文件管理,例如调整某些系统服务的设置,使其尽量减少对开发文件的干扰。
  • 文件系统类型:不同的文件系统类型对于文件锁定的处理方式不同。如果你在使用可移动设备或者某些网络共享驱动器,可能会遇到特殊的锁定机制,这也会导致 EBUSY 错误。
2. 资源竞争与硬盘性能

在安装大型依赖或多个依赖时,npm 会对文件系统进行大量的 I/O 操作。如果你的系统硬盘性能较差,安装过程中可能因 I/O 操作滞后而造成文件占用,最终导致 EBUSY 错误。解决此类问题的一种方法是减少同时进行的并发任务数。

可以使用以下命令来控制 npm 的并发数,设置为一个较低的值:

npm set maxsockets 5

这种方式可以有效降低硬盘 I/O 的压力,从而减少 EBUSY 错误的发生。

五、总结与建议

综上所述,npm error code EBUSY 是一个较为常见的错误,特别是在 Windows 系统上,通常由文件被占用、资源竞争、权限不足等原因引起。解决这个错误的关键在于逐步排查,确保所有可能占用资源的进程得到妥善处理,必要时调整系统环境设置、权限以及工具本身的版本。

通过以下几个步骤,你可以有效地排查并解决这个问题:

  1. 确保所有相关文件未被其他程序占用。
  2. 临时禁用防病毒软件,避免扫描干扰安装过程。
  3. 更新 Node.js 和 npm 至最新版本,以避免已知的 bug。
  4. 用管理员权限运行 npm 命令,确保权限足够。
  5. 清理 npm 缓存,避免缓存损坏引发的问题。
  6. 使用 --no-bin-links 选项,避免符号链接问题。
  7. 删除 node_modulespackage-lock.json,重新安装依赖。
  8. 尝试使用 Yarn 作为替代工具来安装依赖。
  9. 优化系统的 I/O 性能,或者通过限制并发任务数来减轻系统负载。

经过这些步骤,相信大部分的 npm error code EBUSY 问题都可以得到解决。如果问题依旧无法解决,建议进一步分析系统的日志文件或工具的 debug 输出,寻求更多线索来进行定位。

PS D:\DS\portal> node fix-tgz.js 🚀 开始批量修复 .tgz 组件包版本... 🔍 发现 7 个本地组件包: [ 'vue-grid-layout-2.3.7-sp1.tgz', 'vue-grid-layout-cus-2.3.72.tgz', 'yhlcomponents-1.2.0-sp10.tgz', 'yhlcomponents-1.3.2-sp9.tgz', 'yhlcomponents-codemirror-1.1.0.tgz', 'yhlcomponents-gantt-1.1.0.tgz', 'yhlcomponents-lowcode-1.0.0-sp12.tgz' ] 🔧 解压 vue-grid-layout-2.3.7-sp1.tgz ... 📁 检测到嵌套 /package 目录,切换路径 ✅ 版本修复成功: 2.3.7sp1 → 2.3.7-sp1 📦 正在重新打包... npm notice npm notice 📦 vue-grid-layout@2.3.7-sp1 npm notice Tarball Contents npm notice 33B .browserslistrc npm notice 353B .eslintrc.js npm notice 888B .github/ISSUE_TEMPLATE/bug_report.md npm notice 750B .github/ISSUE_TEMPLATE/feature_request.md npm notice 5.2kB CHANGELOG.md npm notice 1.1kB LICENSE npm notice 13.3kB README-zh_CN.md npm notice 15.6kB README.md npm notice 119B babel.config.js npm notice 346.5kB dist/vue-grid-layout.common.js npm notice 461.9kB dist/vue-grid-layout.common.js.map npm notice 347.0kB dist/vue-grid-layout.umd.js npm notice 462.5kB dist/vue-grid-layout.umd.js.map npm notice 200.2kB dist/vue-grid-layout.umd.min.js npm notice 627.7kB dist/vue-grid-layout.umd.min.js.map npm notice 17B docs/README.md npm notice 2.4kB examples/01-basic.html npm notice 3.0kB examples/01-basic.js npm notice 3.1kB examples/02-events.html npm notice 3.7kB examples/02-events.js npm notice 3.3kB examples/03-multiple-grids.html npm notice 3.7kB examples/04-allow-ignore.html npm notice 3.5kB examples/05-mirrored.html npm notice 2.5kB examples/06-responsive.html npm notice 2.5kB examples/06-responsive.js npm notice 2.3kB examples/07-prevent-collision.html npm notice 1.7kB examples/07-prevent-collision.js npm notice 2.7kB examples/app.css npm notice 340.1kB examples/vue.js npm notice 93.4kB examples/vue.min.js npm notice 1.3kB package.json npm notice 59B postcss.config.js npm notice 2.7kB public/app.css npm notice 1.1kB public/favicon.ico npm notice 649B public/index.html npm notice 11.5kB src/App.vue npm notice 6.8kB src/assets/logo.png npm notice 1.1kB src/components/CustomDragElement.vue npm notice 35.3kB src/components/GridItem.vue npm notice 17.4kB src/components/GridLayout.vue npm notice 452B src/components/index.js npm notice 10.6kB src/components/ResponsiveGridLayout.vue npm notice 462B src/components/TestElement.vue npm notice 1.1kB src/helpers/DOM.js npm notice 1.5kB src/helpers/draggableUtils.js npm notice 4.5kB src/helpers/responsiveUtils.js npm notice 18.6kB src/helpers/utils.js npm notice 101B src/main.js npm notice 1.0kB test/interact-test.html npm notice 2.1kB test/interact-test.js npm notice 439B vue.config.js npm notice Tarball Details npm notice name: vue-grid-layout npm notice version: 2.3.7-sp1 npm notice filename: vue-grid-layout-2.3.7-sp1.tgz npm notice package size: 794.6 kB npm notice unpacked size: 3.1 MB npm notice shasum: 950cd582bfe42d2bd19ce755ca12e3771d93429a npm notice integrity: sha512-If1SVg0p4yAg4[...]phKV1hLNpjm1Q== npm notice total files: 51 npm notice vue-grid-layout-2.3.7-sp1.tgz 📎 已备份原文件为: vue-grid-layout-2.3.7-sp1.tgz.backup ❌ 处理 vue-grid-layout-2.3.7-sp1.tgz 失败: ENOENT: no such file or directory, copyfile 'D:\DS\portal\temp_unpack\unpack_1761880291390_1kr9i\package\vue-grid-layout-2.3.7-sp1.tgz' -> 'D:\DS\portal\vue-g rid-layout-2.3.7-sp1.tgz' 清理目录失败: D:\DS\portal\temp_unpack\unpack_1761880291390_1kr9i EBUSY: resource busy or locked, rmdir 'D:\DS\portal\temp_unpack\unpack_1761880291390_1kr9i\package' 🔧 解压 vue-grid-layout-cus-2.3.72.tgz ... 📁 检测到嵌套 /package 目录,切换路径 🟢 版本无需修复: 2.3.72 📦 正在重新打包... npm notice npm notice 📦 vue-grid-layout-cus@2.3.72 npm notice Tarball Contents npm notice 33B .browserslistrc npm notice 353B .eslintrc.js npm notice 888B .github/ISSUE_TEMPLATE/bug_report.md npm notice 750B .github/ISSUE_TEMPLATE/feature_request.md npm notice 5.2kB CHANGELOG.md npm notice 1.1kB LICENSE npm notice 13.3kB README-zh_CN.md npm notice 15.6kB README.md npm notice 119B babel.config.js npm notice 346.2kB dist/vue-grid-layout-cus.common.js npm notice 461.2kB dist/vue-grid-layout-cus.common.js.map npm notice 346.7kB dist/vue-grid-layout-cus.umd.js npm notice 461.9kB dist/vue-grid-layout-cus.umd.js.map npm notice 200.0kB dist/vue-grid-layout-cus.umd.min.js npm notice 627.2kB dist/vue-grid-layout-cus.umd.min.js.map npm notice 17B docs/README.md npm notice 2.4kB examples/01-basic.html npm notice 3.0kB examples/01-basic.js npm notice 3.1kB examples/02-events.html npm notice 3.7kB examples/02-events.js npm notice 3.3kB examples/03-multiple-grids.html npm notice 3.7kB examples/04-allow-ignore.html npm notice 3.5kB examples/05-mirrored.html npm notice 2.5kB examples/06-responsive.html npm notice 2.5kB examples/06-responsive.js npm notice 2.3kB examples/07-prevent-collision.html npm notice 1.7kB examples/07-prevent-collision.js npm notice 2.7kB examples/app.css npm notice 340.1kB examples/vue.js npm notice 93.4kB examples/vue.min.js npm notice 1.4kB package.json npm notice 59B postcss.config.js npm notice 2.7kB public/app.css npm notice 1.1kB public/favicon.ico npm notice 649B public/index.html npm notice 11.5kB src/App.vue npm notice 6.8kB src/assets/logo.png npm notice 1.1kB src/components/CustomDragElement.vue npm notice 34.9kB src/components/GridItem.vue npm notice 17.4kB src/components/GridLayout.vue npm notice 452B src/components/index.js npm notice 10.6kB src/components/ResponsiveGridLayout.vue npm notice 462B src/components/TestElement.vue npm notice 1.1kB src/helpers/DOM.js npm notice 1.5kB src/helpers/draggableUtils.js npm notice 4.5kB src/helpers/responsiveUtils.js npm notice 18.6kB src/helpers/utils.js npm notice 101B src/main.js npm notice 1.0kB test/interact-test.html npm notice 2.1kB test/interact-test.js npm notice 439B vue.config.js npm notice Tarball Details npm notice name: vue-grid-layout-cus npm notice version: 2.3.72 npm notice filename: vue-grid-layout-cus-2.3.72.tgz npm notice package size: 796.0 kB npm notice unpacked size: 3.1 MB npm notice shasum: 9af6f6c64525fa1edc2dba0fea113404f7cad190 npm notice integrity: sha512-SjWgUSudUYJmX[...]pSeNuA6T5skEw== npm notice total files: 51 npm notice vue-grid-layout-cus-2.3.72.tgz 📎 已备份原文件为: vue-grid-layout-cus-2.3.72.tgz.backup ❌ 处理 vue-grid-layout-cus-2.3.72.tgz 失败: ENOENT: no such file or directory, copyfile 'D:\DS\portal\temp_unpack\unpack_1761880299010_r8fjq\package\vue-grid-layout-cus-2.3.72.tgz' -> 'D:\DS\portal\vue -grid-layout-cus-2.3.72.tgz' 清理目录失败: D:\DS\portal\temp_unpack\unpack_1761880299010_r8fjq EBUSY: resource busy or locked, rmdir 'D:\DS\portal\temp_unpack\unpack_1761880299010_r8fjq\package' 🔧 解压 yhlcomponents-1.2.0-sp10.tgz ... 📁 检测到嵌套 /package 目录,切换路径 ✅ 版本修复成功: 1.2.0sp10 → 1.2.0-sp10 📦 正在重新打包... npm notice npm notice 📦 yhlcomponents@1.2.0-sp10 npm notice Tarball Contents npm notice 351B README.md npm notice 3.2MB dist/yhlcomponents-ui.js npm notice 3.9MB dist/yhlcomponents-ui.js.map npm notice 1.4kB package.json npm notice Tarball Details npm notice name: yhlcomponents npm notice version: 1.2.0-sp10 npm notice filename: yhlcomponents-1.2.0-sp10.tgz npm notice package size: 2.1 MB npm notice unpacked size: 7.1 MB npm notice shasum: e453a42675509fbaa078c2e15d402c886837580c npm notice integrity: sha512-QaynTyu2Hm4d/[...]SYEuGZ0wl/sMA== npm notice total files: 4 npm notice yhlcomponents-1.2.0-sp10.tgz 📎 已备份原文件为: yhlcomponents-1.2.0-sp10.tgz.backup ❌ 处理 yhlcomponents-1.2.0-sp10.tgz 失败: ENOENT: no such file or directory, copyfile 'D:\DS\portal\temp_unpack\unpack_1761880303476_7cfa4\package\yhlcomponents-1.2.0-sp10.tgz' -> 'D:\DS\portal\yhlcomp onents-1.2.0-sp10.tgz' 清理目录失败: D:\DS\portal\temp_unpack\unpack_1761880303476_7cfa4 EBUSY: resource busy or locked, rmdir 'D:\DS\portal\temp_unpack\unpack_1761880303476_7cfa4\package' 🔧 解压 yhlcomponents-1.3.2-sp9.tgz ... 📁 检测到嵌套 /package 目录,切换路径 ✅ 版本修复成功: 1.3.2sp9 → 1.3.2-sp9 📦 正在重新打包... npm notice npm notice 📦 yhlcomponents@1.3.2-sp9 npm notice Tarball Contents npm notice 351B README.md npm notice 1.9MB dist/yhlcomponents-ui.js npm notice 1.6MB dist/yhlcomponents-ui.js.map npm notice 1.4kB package.json npm notice Tarball Details npm notice name: yhlcomponents npm notice version: 1.3.2-sp9 npm notice filename: yhlcomponents-1.3.2-sp9.tgz npm notice package size: 845.5 kB npm notice unpacked size: 3.6 MB npm notice shasum: 961243db76cdb25b1037f70d8ecb68cb8cee8131 npm notice integrity: sha512-IUJw5FTcDZLz0[...]xfQt03If6F9hg== npm notice total files: 4 npm notice yhlcomponents-1.3.2-sp9.tgz 📎 已备份原文件为: yhlcomponents-1.3.2-sp9.tgz.backup ❌ 处理 yhlcomponents-1.3.2-sp9.tgz 失败: ENOENT: no such file or directory, copyfile 'D:\DS\portal\temp_unpack\unpack_1761880307760_l3job\package\yhlcomponents-1.3.2-sp9.tgz' -> 'D:\DS\portal\yhlcompon ents-1.3.2-sp9.tgz' 清理目录失败: D:\DS\portal\temp_unpack\unpack_1761880307760_l3job EBUSY: resource busy or locked, rmdir 'D:\DS\portal\temp_unpack\unpack_1761880307760_l3job\package' 🔧 解压 yhlcomponents-codemirror-1.1.0.tgz ... 📁 检测到嵌套 /package 目录,切换路径 🟢 版本无需修复: 1.1.0 📦 正在重新打包... npm notice npm notice 📦 yhlcomponents-codemirror@1.1.0 npm notice Tarball Contents npm notice 357B README.md npm notice 452.0kB dist/yhlcomponents-codemirror-ui.js npm notice 3.0MB dist/yhlcomponents-codemirror-ui.js.map npm notice 1.3kB package.json npm notice Tarball Details npm notice name: yhlcomponents-codemirror npm notice version: 1.1.0 npm notice filename: yhlcomponents-codemirror-1.1.0.tgz npm notice package size: 989.4 kB npm notice unpacked size: 3.5 MB npm notice shasum: 6b3339171ab830daacbd65886c2a34d6f17a0671 npm notice integrity: sha512-ebcduouOVl6IZ[...]wwYtzZSTh9DjA== npm notice total files: 4 npm notice yhlcomponents-codemirror-1.1.0.tgz 📎 已备份原文件为: yhlcomponents-codemirror-1.1.0.tgz.backup ❌ 处理 yhlcomponents-codemirror-1.1.0.tgz 失败: ENOENT: no such file or directory, copyfile 'D:\DS\portal\temp_unpack\unpack_1761880311198_ocd9t\package\yhlcomponents-codemirror-1.1.0.tgz' -> 'D:\DS\po rtal\yhlcomponents-codemirror-1.1.0.tgz' 清理目录失败: D:\DS\portal\temp_unpack\unpack_1761880311198_ocd9t EBUSY: resource busy or locked, rmdir 'D:\DS\portal\temp_unpack\unpack_1761880311198_ocd9t\package' 🔧 解压 yhlcomponents-gantt-1.1.0.tgz ... 📁 检测到嵌套 /package 目录,切换路径 🟢 版本无需修复: 1.1.0 📦 正在重新打包... npm notice npm notice 📦 yhlcomponents-gantt@1.1.0 npm notice Tarball Contents npm notice 357B README.md npm notice 352B dist/dot.png npm notice 748.1kB dist/yhlcomponents-gantt-ui.js npm notice 4.6MB dist/yhlcomponents-gantt-ui.js.map npm notice 1.5kB package.json npm notice Tarball Details npm notice name: yhlcomponents-gantt npm notice version: 1.1.0 npm notice filename: yhlcomponents-gantt-1.1.0.tgz npm notice package size: 1.0 MB npm notice unpacked size: 5.3 MB npm notice shasum: ee4b9ae0bdda2fc579a2223373c379c8ed79e629 npm notice integrity: sha512-TRVNkQbgbol7B[...]g3p3/Ea8ykLow== npm notice total files: 5 npm notice yhlcomponents-gantt-1.1.0.tgz 📎 已备份原文件为: yhlcomponents-gantt-1.1.0.tgz.backup ❌ 处理 yhlcomponents-gantt-1.1.0.tgz 失败: ENOENT: no such file or directory, copyfile 'D:\DS\portal\temp_unpack\unpack_1761880314833_exytt\package\yhlcomponents-gantt-1.1.0.tgz' -> 'D:\DS\portal\yhlco mponents-gantt-1.1.0.tgz' 清理目录失败: D:\DS\portal\temp_unpack\unpack_1761880314833_exytt EBUSY: resource busy or locked, rmdir 'D:\DS\portal\temp_unpack\unpack_1761880314833_exytt\package' 🔧 解压 yhlcomponents-lowcode-1.0.0-sp12.tgz ... 📁 检测到嵌套 /package 目录,切换路径 ✅ 版本修复成功: 1.0.0sp12 → 1.0.0-sp12 📦 正在重新打包... npm notice npm notice 📦 yhlcomponents-lowcode@1.0.0-sp12 npm notice Tarball Contents npm notice 0B README.md npm notice 352B dist/dot.png npm notice 56.0kB dist/element-icons.ttf npm notice 28.2kB dist/element-icons.woff npm notice 6.8kB dist/logo.png npm notice 1.6kB dist/off_eye.png npm notice 6.4MB dist/yhlcomponents-lowcode-ui.js npm notice 7.0MB dist/yhlcomponents-lowcode-ui.js.map npm notice 1.5kB package.json npm notice Tarball Details npm notice name: yhlcomponents-lowcode npm notice version: 1.0.0-sp12 npm notice filename: yhlcomponents-lowcode-1.0.0-sp12.tgz npm notice package size: 3.8 MB npm notice unpacked size: 13.5 MB npm notice shasum: c74370b1c26bf8a56ae8dd40361e244ef0acb679 npm notice integrity: sha512-8jTMnGibHuiNO[...]NC/V01tB3VZ6g== npm notice total files: 9 npm notice yhlcomponents-lowcode-1.0.0-sp12.tgz 📎 已备份原文件为: yhlcomponents-lowcode-1.0.0-sp12.tgz.backup ❌ 处理 yhlcomponents-lowcode-1.0.0-sp12.tgz 失败: ENOENT: no such file or directory, copyfile 'D:\DS\portal\temp_unpack\unpack_1761880318487_qto8n\package\yhlcomponents-lowcode-1.0.0-sp12.tgz' -> 'D:\D S\portal\yhlcomponents-lowcode-1.0.0-sp12.tgz' 清理目录失败: D:\DS\portal\temp_unpack\unpack_1761880318487_qto8n EBUSY: resource busy or locked, rmdir 'D:\DS\portal\temp_unpack\unpack_1761880318487_qto8n\package' ✅ 所有处理完成!请运行 npm install 安装依赖 PS D:\DS\portal>
11-01
npm ERR! code 1 npm ERR! git dep preparation failed npm ERR! command D:\Program Files\nodejs\node.exe D:\node\nodejs\node_global\node_modules\npm\bin\npm-cli.js install --force --cache=D:\Program Files\nodejs\node_cache --prefer-offline=false --prefer-online=false --offline=false --no-progress --no-save --no-audit --include=dev --include=peer --include=optional --no-package-lock-only --no-dry-run npm ERR! npm WARN using --force Recommended protections disabled. npm ERR! npm WARN deprecated osenv@0.1.5: This package is no longer supported. npm ERR! npm WARN deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. npm ERR! npm WARN deprecated @npmcli/move-file@1.1.2: This functionality has been moved to @npmcli/fs npm ERR! npm WARN deprecated @babel/plugin-proposal-class-properties@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead. npm ERR! npm WARN deprecated lodash.isequal@4.5.0: This package is deprecated. Use require('node:util').isDeepStrictEqual instead. npm ERR! npm WARN deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead npm ERR! npm WARN deprecated move-concurrently@1.0.1: This package is no longer supported. npm ERR! npm WARN deprecated stable@0.1.8: Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility npm ERR! npm WARN deprecated source-map-url@0.4.1: See https://github.com/lydell/source-map-url#deprecated npm ERR! npm WARN deprecated rimraf@2.7.1: Rimraf versions prior to v4 are no longer supported npm ERR! npm WARN deprecated rimraf@2.7.1: Rimraf versions prior to v4 are no longer supported npm ERR! npm WARN deprecated figgy-pudding@3.5.2: This module is no longer supported. npm ERR! npm WARN deprecated rimraf@2.7.1: Rimraf versions prior to v4 are no longer supported npm ERR! npm WARN deprecated rimraf@2.7.1: Rimraf versions prior to v4 are no longer supported npm ERR! npm WARN deprecated rimraf@2.7.1: Rimraf versions prior to v4 are no longer supported npm ERR! npm WARN deprecated rimraf@2.7.1: Rimraf versions prior to v4 are no longer supported npm ERR! npm WARN deprecated npmlog@4.1.2: This package is no longer supported. npm ERR! npm WARN deprecated @hapi/bourne@1.3.2: This version has been deprecated and is no longer supported or maintained npm ERR! npm WARN deprecated @hapi/topo@3.1.6: This version has been deprecated and is no longer supported or maintained npm ERR! npm WARN deprecated rimraf@2.7.1: Rimraf versions prior to v4 are no longer supported npm ERR! npm WARN deprecated rimraf@2.7.1: Rimraf versions prior to v4 are no longer supported npm ERR! npm WARN deprecated consolidate@0.15.1: Please upgrade to consolidate v1.0.0+ as it has been modernized with several long-awaited fixes implemented. Maintenance is supported by Forward Email at https://forwardemail.net ; follow/watch https://github.com/ladjs/consolidate for updates and release changelog npm ERR! npm WARN deprecated copy-concurrently@1.0.5: This package is no longer supported. npm ERR! npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated npm ERR! npm WARN deprecated har-validator@5.1.5: this library is no longer supported npm ERR! npm WARN deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported npm ERR! npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported npm ERR! npm WARN deprecated q@1.5.1: You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other. npm ERR! npm WARN deprecated npm ERR! npm WARN deprecated (For a CapTP with native promises, see @endo/eventual-send and @endo/captp) npm ERR! npm WARN deprecated glob@7.1.7: Glob versions prior to v9 are no longer supported npm ERR! npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead npm ERR! npm WARN deprecated source-map-resolve@0.5.3: See https://github.com/lydell/source-map-resolve#deprecated npm ERR! npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated npm ERR! npm WARN deprecated are-we-there-yet@1.1.7: This package is no longer supported. npm ERR! npm WARN deprecated html-webpack-plugin@3.2.0: 3.x is no longer supported npm ERR! npm WARN deprecated fs-write-stream-atomic@1.0.10: This package is no longer supported. npm ERR! npm WARN deprecated @hapi/address@2.1.4: Moved to 'npm install @sideway/address' npm ERR! npm WARN deprecated babel-eslint@10.1.0: babel-eslint is now @babel/eslint-parser. This package will no longer receive updates. npm ERR! npm WARN deprecated @babel/polyfill@7.12.1: 🚨 This package has been deprecated in favor of separate inclusion of a polyfill and regenerator-runtime (when needed). See the @babel/polyfill docs (https://babeljs.io/docs/en/babel-polyfill) for more information. npm ERR! npm WARN deprecated gauge@2.7.4: This package is no longer supported. npm ERR! npm WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. npm ERR! npm WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. npm ERR! npm WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. npm ERR! npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142 npm ERR! npm WARN deprecated webpack-chain@6.5.1: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. npm ERR! npm WARN deprecated fstream@1.0.12: This package is no longer supported. npm ERR! npm WARN deprecated @hapi/hoek@8.5.1: This version has been deprecated and is no longer supported or maintained npm ERR! npm WARN deprecated @hapi/joi@15.1.1: Switch to 'npm install joi' npm ERR! npm WARN deprecated svgo@1.3.2: This SVGO version is no longer supported. Upgrade to v2.x.x. npm ERR! npm WARN deprecated tar@2.2.2: This version of tar is no longer supported, and will not receive security updates. Please upgrade asap. npm ERR! npm WARN deprecated iltorb@2.4.5: The zlib module provides APIs for brotli compression/decompression starting with Node.js v10.16.0, please use it over iltorb npm ERR! npm WARN deprecated vue@2.6.14: Vue 2 has reached EOL and is no longer actively maintained. See https://v2.vuejs.org/eol/ for more details. npm ERR! npm WARN deprecated node-sass@4.14.1: Node Sass is no longer supported. Please use `sass` or `sass-embedded` instead. npm ERR! npm WARN deprecated eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options. npm ERR! npm WARN deprecated core-js@2.6.12: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, fea ture detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js. npm ERR! npm WARN deprecated core-js@2.6.12: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, fea ture detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js. npm ERR! npm WARN cleanup Failed to remove some directories [ npm ERR! npm WARN cleanup [ npm ERR! npm WARN cleanup 'D:\\Program Files\\nodejs\\node_cache\\_cacache\\tmp\\git-cloneuwf27x\\node_modules\\mozjpeg', npm ERR! npm WARN cleanup [Error: EBUSY: resource busy or locked, rmdir 'D:\Program Files\nodejs\node_cache\_cacache\tmp\git-cloneuwf27x\node_modules\mozjpeg'] { npm ERR! npm WARN cleanup errno: -4082, npm ERR! npm WARN cleanup code: 'EBUSY', npm ERR! npm WARN cleanup syscall: 'rmdir', npm ERR! npm WARN cleanup path: 'D:\\Program Files\\nodejs\\node_cache\\_cacache\\tmp\\git-cloneuwf27x\\node_modules\\mozjpeg' npm ERR! npm WARN cleanup } npm ERR! npm WARN cleanup ], npm ERR! npm WARN cleanup [ npm ERR! npm WARN cleanup 'D:\\Program Files\\nodejs\\node_cache\\_cacache\\tmp\\git-cloneuwf27x\\node_modules\\optipng-bin', npm ERR! npm WARN cleanup [Error: EBUSY: resource busy or locked, rmdir 'D:\Program Files\nodejs\node_cache\_cacache\tmp\git-cloneuwf27x\node_modules\optipng-bin'] { npm ERR! npm WARN cleanup errno: -4082, npm ERR! npm WARN cleanup code: 'EBUSY', npm ERR! npm WARN cleanup syscall: 'rmdir', npm ERR! npm WARN cleanup path: 'D:\\Program Files\\nodejs\\node_cache\\_cacache\\tmp\\git-cloneuwf27x\\node_modules\\optipng-bin' npm ERR! npm WARN cleanup } npm ERR! npm WARN cleanup ], npm ERR! npm WARN cleanup [ npm ERR! npm WARN cleanup 'D:\\Program Files\\nodejs\\node_cache\\_cacache\\tmp\\git-cloneuwf27x\\node_modules\\cwebp-bin', npm ERR! npm WARN cleanup [Error: EBUSY: resource busy or locked, rmdir 'D:\Program Files\nodejs\node_cache\_cacache\tmp\git-cloneuwf27x\node_modules\cwebp-bin'] { npm ERR! npm WARN cleanup errno: -4082, npm ERR! npm WARN cleanup code: 'EBUSY', npm ERR! npm WARN cleanup syscall: 'rmdir', npm ERR! npm WARN cleanup path: 'D:\\Program Files\\nodejs\\node_cache\\_cacache\\tmp\\git-cloneuwf27x\\node_modules\\cwebp-bin' npm ERR! npm WARN cleanup } npm ERR! npm WARN cleanup ], npm ERR! npm WARN cleanup [ npm ERR! npm WARN cleanup 'D:\\Program Files\\nodejs\\node_cache\\_cacache\\tmp\\git-cloneuwf27x\\node_modules\\gifsicle', npm ERR! npm WARN cleanup [Error: EBUSY: resource busy or locked, rmdir 'D:\Program Files\nodejs\node_cache\_cacache\tmp\git-cloneuwf27x\node_modules\gifsicle'] { npm ERR! npm WARN cleanup errno: -4082, npm ERR! npm WARN cleanup code: 'EBUSY', npm ERR! npm WARN cleanup syscall: 'rmdir', npm ERR! npm WARN cleanup path: 'D:\\Program Files\\nodejs\\node_cache\\_cacache\\tmp\\git-cloneuwf27x\\node_modules\\gifsicle' npm ERR! npm WARN cleanup } npm ERR! npm WARN cleanup ], npm ERR! npm WARN cleanup [ npm ERR! npm WARN cleanup 'D:\\Program Files\\nodejs\\node_cache\\_cacache\\tmp\\git-cloneuwf27x\\node_modules\\pngquant-bin', npm ERR! npm WARN cleanup [Error: EBUSY: resource busy or locked, rmdir 'D:\Program Files\nodejs\node_cache\_cacache\tmp\git-cloneuwf27x\node_modules\pngquant-bin'] { npm ERR! npm WARN cleanup errno: -4082, npm ERR! npm WARN cleanup code: 'EBUSY', npm ERR! npm WARN cleanup syscall: 'rmdir', npm ERR! npm WARN cleanup path: 'D:\\Program Files\\nodejs\\node_cache\\_cacache\\tmp\\git-cloneuwf27x\\node_modules\\pngquant-bin' npm ERR! npm WARN cleanup } npm ERR! npm WARN cleanup ], npm ERR! npm WARN cleanup [ npm ERR! npm WARN cleanup 'D:\\Program Files\\nodejs\\node_cache\\_cacache\\tmp\\git-cloneuwf27x\\node_modules', npm ERR! npm WARN cleanup [Error: EBUSY: resource busy or locked, rmdir 'D:\Program Files\nodejs\node_cache\_cacache\tmp\git-cloneuwf27x\node_modules\cwebp-bin'] { npm ERR! npm WARN cleanup errno: -4082, npm ERR! npm WARN cleanup code: 'EBUSY', npm ERR! npm WARN cleanup syscall: 'rmdir', npm ERR! npm WARN cleanup path: 'D:\\Program Files\\nodejs\\node_cache\\_cacache\\tmp\\git-cloneuwf27x\\node_modules\\cwebp-bin' npm ERR! npm WARN cleanup } npm ERR! npm WARN cleanup ], npm ERR! npm WARN cleanup [ npm ERR! npm WARN cleanup 'D:\\Program Files\\nodejs\\node_cache\\_cacache\\tmp\\git-cloneuwf27x\\node_modules\\@babel\\polyfill', npm ERR! npm WARN cleanup [Error: EPERM: operation not permitted, rmdir 'D:\Program Files\nodejs\node_cache\_cacache\tmp\git-cloneuwf27x\node_modules\@babel\polyfill'] { npm ERR! npm WARN cleanup errno: -4048, npm ERR! npm WARN cleanup code: 'EPERM', npm ERR! npm WARN cleanup syscall: 'rmdir', npm ERR! npm WARN cleanup path: 'D:\\Program Files\\nodejs\\node_cache\\_cacache\\tmp\\git-cloneuwf27x\\node_modules\\@babel\\polyfill' npm ERR! npm WARN cleanup } npm ERR! npm WARN cleanup ] npm ERR! npm WARN cleanup ] npm ERR! npm ERR! code 1 npm ERR! npm ERR! path D:\Program Files\nodejs\node_cache\_cacache\tmp\git-cloneuwf27x\node_modules\node-sass npm ERR! npm ERR! command failed npm ERR! npm ERR! command C:\WINDOWS\system32\cmd.exe /d /s /c node scripts/build.js npm ERR! npm ERR! Building: D:\Program Files\nodejs\node.exe D:\Program Files\nodejs\node_cache\_cacache\tmp\git-cloneuwf27x\node_modules\node-gyp\bin\node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library= npm ERR! npm ERR! �ڴ˽��������һ������һ����Ŀ����Ҫ���ò������ɣ������ӡ�/m�����ء� npm ERR! npm ERR! ��������ʱ��Ϊ 2025/5/27 15:48:02�� npm ERR! npm ERR! �ڵ� 1 �ϵ���Ŀ��D:\Program Files\nodejs\node_cache\_cacache\tmp\git-cloneuwf27x\node_modules\node-sass\build\binding.sln��(Ĭ��Ŀ��)�� npm ERR! npm ERR! ValidateSolutionConfiguration: npm ERR! npm ERR! �������ɽ���������á�Release|x64���� npm ERR! npm ERR! MSBUILD : error MSB3428: δ�ܼ��� Visual C++ �����VCBuild.exe����Ҫ��������⣬1) ��װ .NET Framework 2.0 SDK��2) ��װ Microsoft Visual Studio 2005���� 3) ������������װ��������λ�ã��뽫��λ�����ӵ�ϵͳ·���С� [D:\Program Files\nodejs\node_cache\_cacache\tmp\git-cloneuwf27x\node_modules\node-sass\build\binding.sln] npm ERR! npm ERR! �����������Ŀ��D:\Program Files\nodejs\node_cache\_cacache\tmp\git-cloneuwf27x\node_modules\node-sass\build\binding.sln��(Ĭ��Ŀ��)�IJ��� - ʧ�ܡ� npm ERR! npm ERR! npm ERR! npm ERR! ����ʧ�ܡ� npm ERR! npm ERR! npm ERR! npm ERR! ��D:\Program Files\nodejs\node_cache\_cacache\tmp\git-cloneuwf27x\node_modules\node-sass\build\binding.sln��(Ĭ��Ŀ��) (1) -> npm ERR! npm ERR! (_src_\libsass Ŀ��) -> npm ERR! npm ERR! MSBUILD : error MSB3428: δ�ܼ��� Visual C++ �����VCBuild.exe����Ҫ��������⣬1) ��װ .NET Framework 2.0 SDK��2) ��װ Microsoft Visual Studio 2005���� 3) ������������װ��������λ�ã��뽫��λ�����ӵ�ϵͳ·���С� [D:\Program Files\nodejs\node_cache\_cacache\tmp\git-cloneuwf27x\node_modules\node-sass\build\binding.sln] npm ERR! npm ERR! npm ERR! npm ERR! 0 ������ npm ERR! npm ERR! 1 ������ npm ERR! npm ERR! npm ERR! npm ERR! ����ʱ�� 00:00:00.40 npm ERR! npm ERR! gyp info it worked if it ends with ok npm ERR! npm ERR! gyp verb cli [ npm ERR! npm ERR! gyp verb cli 'D:\\Program Files\\nodejs\\node.exe', npm ERR! npm ERR! gyp verb cli 'D:\\Program Files\\nodejs\\node_cache\\_cacache\\tmp\\git-cloneuwf27x\\node_modules\\node-gyp\\bin\\node-gyp.js', npm ERR! npm ERR! gyp verb cli 'rebuild', npm ERR! npm ERR! gyp verb cli '--verbose', npm ERR! npm ERR! gyp verb cli '--libsass_ext=', npm ERR! npm ERR! gyp verb cli '--libsass_cflags=', npm ERR! npm ERR! gyp verb cli '--libsass_ldflags=', npm ERR! npm ERR! gyp verb cli '--libsass_library=' npm ERR! npm ERR! gyp verb cli ] npm ERR! npm ERR! gyp info using node-gyp@3.8.0 npm ERR! npm ERR! gyp info using node@14.20.0 | win32 | x64 npm ERR! npm ERR! gyp verb command rebuild [] npm ERR! npm ERR! gyp verb command clean [] npm ERR! npm ERR! gyp verb clean removing "build" directory npm ERR! npm ERR! gyp verb command configure [] npm ERR! npm ERR! gyp verb check python checking for Python executable "python2" in the PATH npm ERR! npm ERR! gyp verb `which` failed Error: not found: python2 npm ERR! npm ERR! gyp verb `which` failed at getNotFoundError (D:\Program Files\nodejs\node_cache\_cacache\tmp\git-cloneuwf27x\node_modules\node-gyp\node_modules\which\which.js:13:12) npm ERR! npm ERR! gyp verb `which` failed at F (D:\Program Files\nodejs\node_cache\_cacache\tmp\git-cloneuwf27x\node_modules\node-gyp\node_modules\which\which.js:68:19) npm ERR! npm ERR! gyp verb `which` failed at E (D:\Program Files\nodejs\node_cache\_cacache\tmp\git-cloneuwf27x\node_modules\node-gyp\node_modules\which\which.js:80:29) npm ERR! npm ERR! gyp verb `which` failed at D:\Program Files\nodejs\node_cache\_cacache\tmp\git-cloneuwf27x\node_modules\node-gyp\node_modules\which\which.js:89:16 npm ERR! npm ERR! gyp verb `which` failed at D:\Program Files\nodejs\node_cache\_cacache\tmp\git-cloneuwf27x\node_modules\isexe\index.js:42:5 npm ERR! npm ERR! gyp verb `which` failed at D:\Program Files\nodejs\node_cache\_cacache\tmp\git-cloneuwf27x\node_modules\isexe\windows.js:36:5 npm ERR! npm ERR! gyp verb `which` failed at FSReqCallback.oncomplete (fs.js:192:21) npm ERR! npm ERR! gyp verb `which` failed python2 Error: not found: python2 npm ERR! npm ERR! gyp verb `which` failed at getNotFoundError (D:\Program Files\nodejs\node_cache\_cacache\tmp\git-cloneuwf27x\node_modules\node-gyp\node_modules\which\which.js:13:12) npm ERR! npm ERR! gyp verb `which` failed at F (D:\Program Files\nodejs\node_cache\_cacache\tmp\git-cloneuwf27x\node_modules\node-gyp\node_modules\which\which.js:68:19) npm ERR! npm ERR! gyp verb `which` failed at E (D:\Program Files\nodejs\node_cache\_cacache\tmp\git-cloneuwf27x\node_modules\node-gyp\node_modules\which\which.js:80:29) npm ERR! npm ERR! gyp verb `which` failed at D:\Program Files\nodejs\node_cache\_cacache\tmp\git-cloneuwf27x\node_modules\node-gyp\node_modules\which\which.js:89:16 npm ERR! npm ERR! gyp verb `which` failed at D:\Program Files\nodejs\node_cache\_cacache\tmp\git-cloneuwf27x\node_modules\isexe\index.js:42:5 npm ERR! npm ERR! gyp verb `which` failed at D:\Program Files\nodejs\node_cache\_cacache\tmp\git-cloneuwf27x\node_modules\isexe\windows.js:36:5 npm ERR! npm ERR! gyp verb `which` failed at FSReqCallback.oncomplete (fs.js:192:21) { npm ERR! npm ERR! gyp verb `which` failed code: 'ENOENT' npm ERR! npm ERR! gyp verb `which` failed } npm ERR! npm ERR! gyp verb check python checking for Python executable "python" in the PATH npm ERR! npm ERR! gyp verb `which` succeeded python D:\Python27\python.EXE npm ERR! npm ERR! gyp verb check python version `D:\Python27\python.EXE -c "import sys; print "2.7.0 npm ERR! npm ERR! gyp verb check python version .%s.%s" % sys.version_info[:3];"` returned: %j npm ERR! npm ERR! gyp verb get node dir no --target version specified, falling back to host node version: 14.20.0 npm ERR! npm ERR! gyp verb command install [ '14.20.0' ] npm ERR! npm ERR! gyp verb install input version string "14.20.0" npm ERR! npm ERR! gyp verb install installing version: 14.20.0 npm ERR! npm ERR! gyp verb install --ensure was passed, so won't reinstall if already installed npm ERR! npm ERR! gyp verb install version is already installed, need to check "installVersion" npm ERR! npm ERR! gyp verb got "installVersion" 9 npm ERR! npm ERR! gyp verb needs "installVersion" 9 npm ERR! npm ERR! gyp verb install version is good npm ERR! npm ERR! gyp verb get node dir target node version installed: 14.20.0 npm ERR! npm ERR! gyp verb build dir attempting to create "build" dir: D:\Program Files\nodejs\node_cache\_cacache\tmp\git-cloneuwf27x\node_modules\node-sass\build npm ERR! npm ERR! gyp verb build dir "build" dir needed to be created? D:\Program Files\nodejs\node_cache\_cacache\tmp\git-cloneuwf27x\node_modules\node-sass\build npm ERR! npm ERR! gyp verb Not using VS2017: Could not use PowerShell to find VS2017 npm ERR! npm ERR! gyp verb build/config.gypi creating config file npm ERR! npm ERR! gyp verb build/config.gypi writing out config file: D:\Program Files\nodejs\node_cache\_cacache\tmp\git-cloneuwf27x\node_modules\node-sass\build\config.gypi npm ERR! npm ERR! gyp verb config.gypi checking for gypi file: D:\Program Files\nodejs\node_cache\_cacache\tmp\git-cloneuwf27x\node_modules\node-sass\config.gypi npm ERR! npm ERR! gyp verb common.gypi checking for gypi file: D:\Program Files\nodejs\node_cache\_cacache\tmp\git-cloneuwf27x\node_modules\node-sass\common.gypi npm ERR! npm ERR! gyp verb gyp gyp format was not specified; forcing "msvs" npm ERR! npm ERR! gyp info spawn D:\Python27\python.EXE npm ERR! npm ERR! gyp info spawn args [ npm ERR! npm ERR! gyp info spawn args 'D:\\Program Files\\nodejs\\node_cache\\_cacache\\tmp\\git-cloneuwf27x\\node_modules\\node-gyp\\gyp\\gyp_main.py', npm ERR! npm ERR! gyp info spawn args 'binding.gyp', npm ERR! npm ERR! gyp info spawn args '-f', npm ERR! npm ERR! gyp info spawn args 'msvs', npm ERR! npm ERR! gyp info spawn args '-G', npm ERR! npm ERR! gyp info spawn args 'msvs_version=auto', npm ERR! npm ERR! gyp info spawn args '-I', npm ERR! npm ERR! gyp info spawn args 'D:\\Program Files\\nodejs\\node_cache\\_cacache\\tmp\\git-cloneuwf27x\\node_modules\\node-sass\\build\\config.gypi', npm ERR! npm ERR! gyp info spawn args '-I', npm ERR! npm ERR! gyp info spawn args 'D:\\Program Files\\nodejs\\node_cache\\_cacache\\tmp\\git-cloneuwf27x\\node_modules\\node-gyp\\addon.gypi', npm ERR! npm ERR! gyp info spawn args '-I', npm ERR! npm ERR! gyp info spawn args 'C:\\Users\\23969\\.node-gyp\\14.20.0\\include\\node\\common.gypi', npm ERR! npm ERR! gyp info spawn args '-Dlibrary=shared_library', npm ERR! npm ERR! gyp info spawn args '-Dvisibility=default', npm ERR! npm ERR! gyp info spawn args '-Dnode_root_dir=C:\\Users\\23969\\.node-gyp\\14.20.0', npm ERR! npm ERR! gyp info spawn args '-Dnode_gyp_dir=D:\\Program Files\\nodejs\\node_cache\\_cacache\\tmp\\git-cloneuwf27x\\node_modules\\node-gyp', npm ERR! npm ERR! gyp info spawn args '-Dnode_lib_file=C:\\Users\\23969\\.node-gyp\\14.20.0\\<(target_arch)\\node.lib', npm ERR! npm ERR! gyp info spawn args '-Dmodule_root_dir=D:\\Program Files\\nodejs\\node_cache\\_cacache\\tmp\\git-cloneuwf27x\\node_modules\\node-sass', npm ERR! npm ERR! gyp info spawn args '-Dnode_engine=v8', npm ERR! npm ERR! gyp info spawn args '--depth=.', npm ERR! npm ERR! gyp info spawn args '--no-parallel', npm ERR! npm ERR! gyp info spawn args '--generator-output', npm ERR! npm ERR! gyp info spawn args 'D:\\Program Files\\nodejs\\node_cache\\_cacache\\tmp\\git-cloneuwf27x\\node_modules\\node-sass\\build', npm ERR! npm ERR! gyp info spawn args '-Goutput_dir=.' npm ERR! npm ERR! gyp info spawn args ] npm ERR! npm ERR! Warning: unrecognized setting VCCLCompilerTool/MultiProcessorCompilation npm ERR! npm ERR! Warning: unrecognized setting VCCLCompilerTool/MultiProcessorCompilation npm ERR! npm ERR! Warning: unrecognized setting VCCLCompilerTool/MultiProcessorCompilation npm ERR! npm ERR! Warning: unrecognized setting VCCLCompilerTool/MultiProcessorCompilation npm ERR! npm ERR! gyp verb command build [] npm ERR! npm ERR! gyp verb build type Release npm ERR! npm ERR! gyp verb architecture x64 npm ERR! npm ERR! gyp verb node dev dir C:\Users\23969\.node-gyp\14.20.0 npm ERR! npm ERR! gyp verb found first Solution file build/binding.sln npm ERR! npm ERR! gyp verb could not find "msbuild.exe" in PATH - finding location in registry npm ERR! npm ERR! gyp info spawn C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe npm ERR! npm ERR! gyp info spawn args [ npm ERR! npm ERR! gyp info spawn args 'build/binding.sln', npm ERR! npm ERR! gyp info spawn args '/nologo', npm ERR! npm ERR! gyp info spawn args '/p:Configuration=Release;Platform=x64' npm ERR! npm ERR! gyp info spawn args ] npm ERR! npm ERR! gyp ERR! build error npm ERR! npm ERR! gyp ERR! stack Error: `C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe` failed with exit code: 1 npm ERR! npm ERR! gyp ERR! stack at ChildProcess.onExit (D:\Program Files\nodejs\node_cache\_cacache\tmp\git-cloneuwf27x\node_modules\node-gyp\lib\build.js:262:23) npm ERR! npm ERR! gyp ERR! stack at ChildProcess.emit (events.js:400:28) npm ERR! npm ERR! gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:285:12) npm ERR! npm ERR! gyp ERR! System Windows_NT 10.0.26100 npm ERR! npm ERR! gyp ERR! command "D:\\Program Files\\nodejs\\node.exe" "D:\\Program Files\\nodejs\\node_cache\\_cacache\\tmp\\git-cloneuwf27x\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library=" npm ERR! npm ERR! gyp ERR! cwd D:\Program Files\nodejs\node_cache\_cacache\tmp\git-cloneuwf27x\node_modules\node-sass npm ERR! npm ERR! gyp ERR! node -v v14.20.0 npm ERR! npm ERR! gyp ERR! node-gyp -v v3.8.0 npm ERR! npm ERR! gyp ERR! not ok npm ERR! npm ERR! Build failed with error code: 1
05-28
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值