gatsby starter 安装失败,因为尖锐

Posted

技术标签:

【中文标题】gatsby starter 安装失败,因为尖锐【英文标题】:Fail to install gatsby starter because of sharp 【发布时间】:2020-01-28 15:35:36 【问题描述】:

当我想安装 gatsby 启动器时,我在终端中遇到了这些错误。 有人知道如何解决吗?

[4/4] ????  Building fresh packages...
[6/13] ⠁ sharp
[-/13] ⠁ waiting...
[-/13] ⠁ waiting...
[12/13] ⠁ sharp
error /Users/anykey/Documents/GitHub/a1000/node_modules/favicons/node_modules/sharp: Command failed.
Exit code: 1
Command: (node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)
Arguments: 
Directory: /Users/anykey/Documents/GitHub/a1000/node_modules/favicons/node_modules/sharp
Output:
info sharp Detected globally-installed libvips v8.8.3
info sharp Building from source via node-gyp
gyp info it worked if it ends with ok
gyp info using node-gyp@5.0.3
gyp info using node@10.16.3 | darwin | x64
gyp info find Python using Python version 2.7.10 found at "/usr/bin/python"
gyp info spawn /usr/bin/python
gyp info spawn args [ '/usr/local/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args   'binding.gyp',
gyp info spawn args   '-f',
gyp info spawn args   'make',
gyp info spawn args   '-I',
gyp info spawn args   '/Users/anykey/Documents/GitHub/a1000/node_modules/favicons/node_modules/sharp/build/config.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/usr/local/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/Users/anykey/Library/Caches/node-gyp/10.16.3/include/node/common.gypi',
gyp info spawn args   '-Dlibrary=shared_library',
gyp info spawn args   '-Dvisibility=default',
gyp info spawn args   '-Dnode_root_dir=/Users/anykey/Library/Caches/node-gyp/10.16.3',
gyp info spawn args   '-Dnode_gyp_dir=/usr/local/lib/node_modules/npm/node_modules/node-gyp',
gyp info spawn args   '-Dnode_lib_file=/Users/anykey/Library/Caches/node-gyp/10.16.3/<(target_arch)/node.lib',
gyp info spawn args   '-Dmodule_root_dir=/Users/anykey/Documents/GitHub/a1000/node_modules/favicons/node_modules/sharp',
gyp info spawn args   '-Dnode_engine=v8',
gyp info spawn args   '--depth=.',
gyp info spawn args   '--no-parallel',
gyp info spawn args   '--generator-output',
gyp info spawn args   'build',
gyp info spawn args   '-Goutput_dir=.' ]
Package libffi was not found in the pkg-config search path.
Perhaps you should add the directory containing `libffi.pc'
to the PKG_CONFIG_PATH environment variable
Package 'libffi', required by 'gobject-2.0', not found
gyp: Call to 'PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/Homebrew/Library/Homebrew/os/mac/pkgconfig/10.14:/usr/local/lib/pkgconfig:/usr/lib/pkgconfig" pkg-config --cflags-only-I vips-cpp vips glib-2.0 | sed s\/-I//g' returned exit status 0 while in binding.gyp. while trying to load binding.gyp
gyp ERR! configure error 
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:344:16)
gyp ERR! stack     at ChildProcess.emit (events.js:198:13)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:248:12)
gyp ERR! System Darwin 18.5.0
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/anykey/Documents/GitHub/a1000/node_modules/favicons/node_modules/sharp
gyp ERR! node -v v10.16.3

【问题讨论】:

我在使用 npm 时遇到了严重错误。我改用纱线,从那以后再也没有这个问题。由于这些奇怪的 npm 问题,gatsby 的创建者还推荐使用 yarn 进行 gatsby 开发。 【参考方案1】:

问题可能是由于 node v12.x 和使用 npm 而不是 yarn 导致了我的问题。

解决问题的步骤。

1) 使用 nvm(管理不同的节点版本)将您的节点版本降级到 10.x(v10.16.0 为我解决了这个问题)。 nvm 的命令是:

 a) "nvm install 10.16.0" (to install node version).

 b) "nvm use 10.16.0" (to switch between different node versions).

2) 使用 yarn 安装依赖,使用命令:

  yarn

如果已经使用过npm,那么移除node_modules和package.lock.json,然后尝试上面的步骤。

【讨论】:

【参考方案2】:

我用 Homebrew 安装了 vips。通过运行,卸载它解决了我的问题:

brew uninstall vips 然后:yarn install(或npm install

【讨论】:

【参考方案3】:

我遇到了类似的问题。就我而言,错误日志中有如下内容

error /<path to the project>/node_modules/sharp: Command failed.
Exit code: 1
Command: (node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)
Arguments: 
Directory: /<path to the project>/node_modules/sharp
Output:
info sharp Using cached /home/username/.npm/_libvips/libvips-8.8.1-linux-x64.tar.gz
ERR! sharp Please delete /home/username/.npm/_libvips/libvips-8.8.1-linux-x64.tar.gz as it is not a valid tarball

正如您在最后几行中看到的,sharp 正在使用libvips 的缓存版本,删除缓存的libvips tarball 为我解决了这个问题。


但是对于 OP,他/她似乎已经根据错误日志中的以下行全局安装了 libvips

info sharp Detected globally-installed libvips v8.8.3
npm -g uninstall libvips

可能会解决他/她的问题。

【讨论】:

【参考方案4】:

因为我安装了几个节点版本,降级到以前的版本对我有用

首先我检查了可用和正在使用的节点版本

nvm ls
         v12.18.4
  ->     v14.15.0
         v14.15.1

然后降级到之前的节点版本

nvm use v12.18.4

所以在我的 Gatsby 产品文件夹中安装 yarn 再次正常工作

cd my-gatsby-folder
yarn install

您可以决定默认使用旧节点版本

nvm alias default 12

【讨论】:

【参考方案5】:

我在我的 gatsby 项目中使用 yarn install 而不是 npm install 解决了此类问题

【讨论】:

以上是关于gatsby starter 安装失败,因为尖锐的主要内容,如果未能解决你的问题,请参考以下文章

gatsby-starter-blog 的站点地图

Gatsby new 安装锐包失败

错误:名称为“AuthorYaml”的类型不存在 - gatsby-casper starter

尝试为 Gatsby 安装 Sharp 时出错

如果缺少环境变量,则 Gatsby 构建失败

WORDPRESS-GATSBY 部署失败