使用npm压缩.hbs主题是否需要Python 2?npm install报错找不到python2的问题咨询
1. npm zip 是否需要 Python 2?
通常来说,npm zip 本身不需要 Python 2。npm zip 一般是你在 package.json 的 scripts 里定义的压缩命令,比如使用 archiver、zip-a-folder 这类纯 JavaScript 编写的工具来打包文件(包括 .hbs 文件),这类工具完全不需要依赖 Python 环境。
只有当你的压缩脚本依赖了需要通过 node-gyp 编译的旧版原生模块时,才可能间接需要 Python,但这种情况非常少见。
2. 解决 node-sass 编译时找不到 Python 2 的错误
你遇到的错误是因为当前安装的 node-sass 版本比较旧(搭配的 node-gyp@3.8.0 是老版本),而旧版 node-sass 依赖的 node-gyp 只支持 Python 2.7 来完成编译工作。不过你用的是 Node.js 14.15.4,完全可以通过以下几种方式解决,不用强制安装 Python 2:
升级
node-sass到兼容 Node.js 14 的版本
Node.js 14 支持的node-sass版本范围是4.14.1及以上、5.x全系列、6.x全系列。你可以修改package.json里的node-sass版本号,比如改成"node-sass": "^4.14.1",然后执行:npm install新版本的
node-sass已经适配了更高版本的node-gyp,可以支持 Python 3.6+。如果无法升级
node-sass,配置 npm 使用 Python 2.7
如果你因为项目限制必须使用旧版node-sass,可以安装 Python 2.7,然后通过 npm 配置指定 Python 路径:npm config set python python2.7之后重新执行
npm install即可。
另外补充一点:.hbs 文件是 Handlebars 模板文件,打包压缩时不需要特殊处理,常规的 zip 命令就能直接包含这些文件,不会有额外依赖问题。
内容的提问来源于stack exchange,提问作者Sameer

