`gatsby-plugin-sharp` 和 `mozjpeg` 的依赖关系是什么?
What are the dependencies of `gatsby-plugin-sharp` and `mozjpeg`?
gatsby-plugin-sharp
(或更具体地说是子依赖项 mozjpeg
)存在问题,它会给出异常 autoreconf: not found
,但问题实际上与其他依赖项有关。人们在各种帖子中找到了各种依赖项的一种或另一种组合以使其为他们工作(例如 , https://github.com/gatsbyjs/gatsby/issues/19432#issuecomment-553644600)。但是似乎没有您需要的确切依赖项的明确列表。
我是 运行 盖茨比 GitHub 行动 ubuntu-latest
。我的 package.json
:
{
"name": "matt.si",
"private": false,
"description": "Mattsi Jansky's personal blog",
"author": "Mattsi Jansky",
"scripts": {
"build": "gatsby build",
"dev": "gatsby develop",
"test": "jest",
"test:updateSnapshots": "jest --updateSnapshot",
"test:visual": "yarn build && ./scripts/run-visual-regression-tests.sh",
"test:visual:update": "docker-compose run visual-regression-tests reference",
"test:visual:approve": "docker-compose run visual-regression-tests approve",
"test:visual:report": "open tests/visual/backstop_data/html_report/index.html",
"lint": "eslint --ext .js,.jsx --ignore-pattern public ."
},
"dependencies": {
"babel-preset-gatsby": "0.5.1",
"gatsby": "2.24.87",
"gatsby-image": "2.4.21",
"gatsby-plugin-feed": "2.5.19",
"gatsby-plugin-google-analytics": "2.3.19",
"gatsby-plugin-manifest": "2.4.35",
"gatsby-plugin-offline": "3.2.37",
"gatsby-plugin-react-helmet": "3.3.14",
"gatsby-plugin-sass": "2.3.21",
"gatsby-plugin-sharp": "3.0.0",
"gatsby-remark-footnotes": "0.0.7",
"gatsby-remark-images": "3.3.39",
"gatsby-remark-prismjs": "3.5.16",
"gatsby-source-filesystem": "2.3.36",
"gatsby-transformer-remark": "2.8.46",
"gatsby-transformer-sharp": "2.5.20",
"identity-obj-proxy": "3.0.0",
"node-sass": "4.14.1",
"prismjs": "1.22.0",
"prop-types": "15.7.2",
"react": "16.14.0",
"react-dom": "16.14.0",
"react-helmet": "6.1.0",
"react-test-renderer": "16.14.0",
"rehype-react": "6.1.0"
},
"devDependencies": {
"babel-jest": "26.6.1",
"enzyme": "3.11.0",
"enzyme-adapter-react-16": "1.15.5",
"eslint": "7.12.0",
"eslint-plugin-react": "7.21.5",
"jest": "26.6.1",
"wait-on": "5.2.0"
},
"license": "GPL-3.0-only"
}
GitHub 动作定义的相关部分:
name: Run tests
on: [push]
jobs:
build:
name: Run Tests
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Install System Dependencies
run: sudo apt-get update && sudo apt-get install make nasm autoconf automake libtool dpkg pkg-config libpng-dev g++
- name: Install Project Dependencies
uses: borales/actions-yarn@v2.1.0
with:
cmd: install
它在 Install Project Dependencies
步失败并显示 autoreconf: not found
。我尝试将 autoreconf
添加到 Install System Dependencies
步骤,但它已经是最新版本了。我试了buildessentials
,也已经是最新版本了。我添加了 libvips-dev
,这似乎是 apt-get
中的 libvips
库的名称,并且确实安装了。在查找与 mozjpeg
() 相同的问题后,我添加了 sudo apt-get install make nasm autoconf automake libtool dpkg pkg-config libpng-dev g++
。但除 nasm
以外的所有这些都已经存在。
但每次我仍然遇到 autoreconf: not found
问题。具体来说,完整的错误(https://github.com/Mattsi-Jansky/matt.si/runs/2051073618):
[4/4] Building fresh packages...
error /github/workspace/node_modules/mozjpeg: Command failed.
Exit code: 1
Command: node lib/install.js
Arguments:
Directory: /github/workspace/node_modules/mozjpeg
Output:
⚠ spawn /github/workspace/node_modules/mozjpeg/vendor/cjpeg ENOENT
⚠ mozjpeg pre-build test failed
ℹ compiling from source
✖ Error: Command failed: /bin/sh -c autoreconf -fiv
/bin/sh: autoreconf: not found
at /github/workspace/node_modules/bin-build/node_modules/execa/index.js:231:11
at runMicrotasks (<anonymous>)
at processTicksAndRejections (internal/process/task_queues.js:93:5)
at async Promise.all (index 0)
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
所以我很茫然。我想我的问题是:a) 我在这里遵循正确的线索,试图找到正确的依赖项吗? b) 我应该添加的依赖项到底是什么?
gatsby-plugin-sharp
,根据documentation:
@babel/runtime
async
bluebird
filenamify
fs-extra
gatsby-core-utils
gatsby-telemetry
got
imagemin
imagemin-mozjpeg
imagemin-pngquant
lodash
mini-svg-data-uri
potrace
prob-image-size
progress
semver
sharp
svgo
uuid
- 开发依赖:
@babel/cli
, @babel/core
, @types/sharp
, babel-preset-gatsby-package
, cross-env
, gatsby-plugin-image
, gatsby-plugin-utils
另一边,mozjpeg
有:
bin-build
bin-wrapper
logalot
- 开发依赖:
ava
, bin-check
, compare-size
, execa
, tempy
, xo
已通过将 borales/actions-yarn
的用法替换为 setup node 的用法来修复此问题,其中包括 Yarn。
borales/actions-yarn
用于 GitHub Actions 测试版,而不是 运行ning yarn 动作的推荐方式。他们 运行 以某种传统方式。我不太清楚细节,但我认为发生的事情是 borales/actions-yarn
是 运行 在没有安装依赖项的单独图像上。
gatsby-plugin-sharp
(或更具体地说是子依赖项 mozjpeg
)存在问题,它会给出异常 autoreconf: not found
,但问题实际上与其他依赖项有关。人们在各种帖子中找到了各种依赖项的一种或另一种组合以使其为他们工作(例如
我是 运行 盖茨比 GitHub 行动 ubuntu-latest
。我的 package.json
:
{
"name": "matt.si",
"private": false,
"description": "Mattsi Jansky's personal blog",
"author": "Mattsi Jansky",
"scripts": {
"build": "gatsby build",
"dev": "gatsby develop",
"test": "jest",
"test:updateSnapshots": "jest --updateSnapshot",
"test:visual": "yarn build && ./scripts/run-visual-regression-tests.sh",
"test:visual:update": "docker-compose run visual-regression-tests reference",
"test:visual:approve": "docker-compose run visual-regression-tests approve",
"test:visual:report": "open tests/visual/backstop_data/html_report/index.html",
"lint": "eslint --ext .js,.jsx --ignore-pattern public ."
},
"dependencies": {
"babel-preset-gatsby": "0.5.1",
"gatsby": "2.24.87",
"gatsby-image": "2.4.21",
"gatsby-plugin-feed": "2.5.19",
"gatsby-plugin-google-analytics": "2.3.19",
"gatsby-plugin-manifest": "2.4.35",
"gatsby-plugin-offline": "3.2.37",
"gatsby-plugin-react-helmet": "3.3.14",
"gatsby-plugin-sass": "2.3.21",
"gatsby-plugin-sharp": "3.0.0",
"gatsby-remark-footnotes": "0.0.7",
"gatsby-remark-images": "3.3.39",
"gatsby-remark-prismjs": "3.5.16",
"gatsby-source-filesystem": "2.3.36",
"gatsby-transformer-remark": "2.8.46",
"gatsby-transformer-sharp": "2.5.20",
"identity-obj-proxy": "3.0.0",
"node-sass": "4.14.1",
"prismjs": "1.22.0",
"prop-types": "15.7.2",
"react": "16.14.0",
"react-dom": "16.14.0",
"react-helmet": "6.1.0",
"react-test-renderer": "16.14.0",
"rehype-react": "6.1.0"
},
"devDependencies": {
"babel-jest": "26.6.1",
"enzyme": "3.11.0",
"enzyme-adapter-react-16": "1.15.5",
"eslint": "7.12.0",
"eslint-plugin-react": "7.21.5",
"jest": "26.6.1",
"wait-on": "5.2.0"
},
"license": "GPL-3.0-only"
}
GitHub 动作定义的相关部分:
name: Run tests
on: [push]
jobs:
build:
name: Run Tests
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Install System Dependencies
run: sudo apt-get update && sudo apt-get install make nasm autoconf automake libtool dpkg pkg-config libpng-dev g++
- name: Install Project Dependencies
uses: borales/actions-yarn@v2.1.0
with:
cmd: install
它在 Install Project Dependencies
步失败并显示 autoreconf: not found
。我尝试将 autoreconf
添加到 Install System Dependencies
步骤,但它已经是最新版本了。我试了buildessentials
,也已经是最新版本了。我添加了 libvips-dev
,这似乎是 apt-get
中的 libvips
库的名称,并且确实安装了。在查找与 mozjpeg
(sudo apt-get install make nasm autoconf automake libtool dpkg pkg-config libpng-dev g++
。但除 nasm
以外的所有这些都已经存在。
但每次我仍然遇到 autoreconf: not found
问题。具体来说,完整的错误(https://github.com/Mattsi-Jansky/matt.si/runs/2051073618):
[4/4] Building fresh packages...
error /github/workspace/node_modules/mozjpeg: Command failed.
Exit code: 1
Command: node lib/install.js
Arguments:
Directory: /github/workspace/node_modules/mozjpeg
Output:
⚠ spawn /github/workspace/node_modules/mozjpeg/vendor/cjpeg ENOENT
⚠ mozjpeg pre-build test failed
ℹ compiling from source
✖ Error: Command failed: /bin/sh -c autoreconf -fiv
/bin/sh: autoreconf: not found
at /github/workspace/node_modules/bin-build/node_modules/execa/index.js:231:11
at runMicrotasks (<anonymous>)
at processTicksAndRejections (internal/process/task_queues.js:93:5)
at async Promise.all (index 0)
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
所以我很茫然。我想我的问题是:a) 我在这里遵循正确的线索,试图找到正确的依赖项吗? b) 我应该添加的依赖项到底是什么?
gatsby-plugin-sharp
,根据documentation:
@babel/runtime
async
bluebird
filenamify
fs-extra
gatsby-core-utils
gatsby-telemetry
got
imagemin
imagemin-mozjpeg
imagemin-pngquant
lodash
mini-svg-data-uri
potrace
prob-image-size
progress
semver
sharp
svgo
uuid
- 开发依赖:
@babel/cli
,@babel/core
,@types/sharp
,babel-preset-gatsby-package
,cross-env
,gatsby-plugin-image
,gatsby-plugin-utils
另一边,mozjpeg
有:
bin-build
bin-wrapper
logalot
- 开发依赖:
ava
,bin-check
,compare-size
,execa
,tempy
,xo
已通过将 borales/actions-yarn
的用法替换为 setup node 的用法来修复此问题,其中包括 Yarn。
borales/actions-yarn
用于 GitHub Actions 测试版,而不是 运行ning yarn 动作的推荐方式。他们 运行 以某种传统方式。我不太清楚细节,但我认为发生的事情是 borales/actions-yarn
是 运行 在没有安装依赖项的单独图像上。