s.k*_*s.k 6 node.js npm node-gyp node-sass npm-install
在 Ubuntu 21.10 上,实际上没有安装 Python2.x,在大型项目上执行“npm install”时,我遇到以下错误(很大,package.json但这两行可能相关:
...
"devDependencies": {
...
"sass": "^1.46.0",
"sass-loader": "10.1.1",
...
Run Code Online (Sandbox Code Playgroud)
)
$ npm install
npm ERR! code 1
npm ERR! git dep preparation failed
npm ERR! command /usr/bin/node /usr/lib/node_modules/npm/bin/npm-cli.js install --force --cache=/home/username/.npm --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 old lockfile
npm ERR! npm WARN old lockfile The package-lock.json file was created with an old version of npm,
npm ERR! npm WARN old lockfile so supplemental metadata must be fetched from the registry.
npm ERR! npm WARN old lockfile
npm ERR! npm WARN old lockfile This is a one-time fix-up, please be patient...
npm ERR! npm WARN old lockfile
npm ERR! npm WARN deprecated <many many warnings...>
npm ERR! npm ERR! code 1
npm ERR! npm ERR! path /home/username/.npm/_cacache/tmp/git-clonebeOztg/node_modules/node-sass
npm ERR! npm ERR! command failed
npm ERR! npm ERR! command sh -c node scripts/build.js
npm ERR! npm ERR! Building: /usr/bin/node /home/username/.npm/_cacache/tmp/git-clonebeOztg/node_modules/node-gyp/bin/node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=
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 '/usr/bin/node',
npm ERR! npm ERR! gyp verb cli '/home/username/.npm/_cacache/tmp/git-clonebeOztg/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@16.14.0 | linux | 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 (/home/username/.npm/_cacache/tmp/git-clonebeOztg/node_modules/node-gyp/node_modules/which/which.js:13:12)
npm ERR! npm ERR! gyp verb `which` failed at F (/home/username/.npm/_cacache/tmp/git-clonebeOztg/node_modules/node-gyp/node_modules/which/which.js:68:19)
npm ERR! npm ERR! gyp verb `which` failed at E (/home/username/.npm/_cacache/tmp/git-clonebeOztg/node_modules/node-gyp/node_modules/which/which.js:80:29)
npm ERR! npm ERR! gyp verb `which` failed at /home/username/.npm/_cacache/tmp/git-clonebeOztg/node_modules/node-gyp/node_modules/which/which.js:89:16
npm ERR! npm ERR! gyp verb `which` failed at /home/username/.npm/_cacache/tmp/git-clonebeOztg/node_modules/isexe/index.js:42:5
npm ERR! npm ERR! gyp verb `which` failed at /home/username/.npm/_cacache/tmp/git-clonebeOztg/node_modules/isexe/mode.js:8:5
npm ERR! npm ERR! gyp verb `which` failed at FSReqCallback.oncomplete (node:fs:198:21)
npm ERR! npm ERR! gyp verb `which` failed python2 Error: not found: python2
npm ERR! npm ERR! gyp verb `which` failed at getNotFoundError (/home/username/.npm/_cacache/tmp/git-clonebeOztg/node_modules/node-gyp/node_modules/which/which.js:13:12)
npm ERR! npm ERR! gyp verb `which` failed at F (/home/username/.npm/_cacache/tmp/git-clonebeOztg/node_modules/node-gyp/node_modules/which/which.js:68:19)
npm ERR! npm ERR! gyp verb `which` failed at E (/home/username/.npm/_cacache/tmp/git-clonebeOztg/node_modules/node-gyp/node_modules/which/which.js:80:29)
npm ERR! npm ERR! gyp verb `which` failed at /home/username/.npm/_cacache/tmp/git-clonebeOztg/node_modules/node-gyp/node_modules/which/which.js:89:16
npm ERR! npm ERR! gyp verb `which` failed at /home/username/.npm/_cacache/tmp/git-clonebeOztg/node_modules/isexe/index.js:42:5
npm ERR! npm ERR! gyp verb `which` failed at /home/username/.npm/_cacache/tmp/git-clonebeOztg/node_modules/isexe/mode.js:8:5
npm ERR! npm ERR! gyp verb `which` failed at FSReqCallback.oncomplete (node:fs:198: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 /usr/bin/python
npm ERR! npm ERR! gyp ERR! configure error
npm ERR! npm ERR! gyp ERR! stack Error: Command failed: /usr/bin/python -c import sys; print "%s.%s.%s" % sys.version_info[:3];
npm ERR! npm ERR! gyp ERR! stack File "<string>", line 1
npm ERR! npm ERR! gyp ERR! stack import sys; print "%s.%s.%s" % sys.version_info[:3];
npm ERR! npm ERR! gyp ERR! stack ^
npm ERR! npm ERR! gyp ERR! stack SyntaxError: invalid syntax
npm ERR! npm ERR! gyp ERR! stack
npm ERR! npm ERR! gyp ERR! stack at ChildProcess.exithandler (node:child_process:399:12)
npm ERR! npm ERR! gyp ERR! stack at ChildProcess.emit (node:events:520:28)
npm ERR! npm ERR! gyp ERR! stack at maybeClose (node:internal/child_process:1092:16)
npm ERR! npm ERR! gyp ERR! stack at Process.ChildProcess._handle.onexit (node:internal/child_process:302:5)
npm ERR! npm ERR! gyp ERR! System Linux 5.15.0-18-generic
npm ERR! npm ERR! gyp ERR! command "/usr/bin/node" "/home/username/.npm/_cacache/tmp/git-clonebeOztg/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 /home/username/.npm/_cacache/tmp/git-clonebeOztg/node_modules/node-sass
npm ERR! npm ERR! gyp ERR! node -v v16.14.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
Run Code Online (Sandbox Code Playgroud)
特别是,这一行不是有效的 Python3.x 合成器:import sys; print "%s.%s.%s" % sys.version_info[:3];因此,即使伪造一个名为“python”或“python2”的符号链接,它指向系统上的 ->“/usr/bin/python3.9”,自然也无济于事。
npm cache clean --force也没有帮助。
系统信息:
$ npm --version
8.3.1
$ node --version
v16.14.0
$ uname -mor
5.15.0-18-generic x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
有关我可以采取哪些措施来修复此错误的任何提示?
我遇到了类似的问题并在没有安装 Payton 的情况下解决了它。也许这种方式可以帮助你。
sass-loader 要求您安装Dart Sass或Node-Sass。我使用过Node-Sass,并在启动之前手动安装它npm install。
因此我的步骤:
考虑以下几点:
node-sass 版本必须与 Node.js 版本相对应。以下是Node-sass 支持的最低和最高版本的快速指南:
| NodeJS | 支持的node-sass版本 | 节点模块 |
|---|---|---|
| 节点16 | 6.0+ | 93 |
| 节点15 | 5.0+ | 88 |
| 节点14 | 4.14+ | 83 |
| 节点13 | 4.13+,<5.0 | 79 |
| 节点12 | 4.12+ | 72 |
| 节点11 | 4.10+,<5.0 | 67 |
| 节点10 | 4.9+,<6.0 | 64 |
| 节点8 | 4.5.3+,<5.0 | 57 |
| 节点<8 | <5.0 | <57 |
目前 Node Sass 已被弃用,因此我建议使用Dart Sass。
值得一提的是,快速更改 NodeJS 版本的简单方法是使用nvm
| 归档时间: |
|
| 查看次数: |
26180 次 |
| 最近记录: |