GithubHelp home page GithubHelp logo

ryanfitzgerald / devblog Goto Github PK

View Code? Open in Web Editor NEW
439.0 11.0 176.0 3.74 MB

A lightweight, customizable personal blog template built with GatsbyJS and React

Home Page: https://RyanFitzgerald.github.io/devblog

License: MIT License

JavaScript 100.00%
gatsbyjs blog static-site static gatsby react javascript

devblog's Introduction

DevBlog

DevBlog is a fully customizable blog template designed for developers (or anyone else) wanting to get into blogging. It comes ready to go and deploy (with ease) or can be edited and extended however you like. The blog is completely statically generated via GatsbyJS, comes with syntax highlighting (via PrismJS) out of the box, and has server-side rendering built-in, among other things.

To view a live demo, click here.

Deploy to Netlify

Features

  • Fully responsive
  • Minimalistic
  • Customizable via a config.js file
  • Easy to deploy
  • Statically-generated via markdown files
  • Server-side rendering
  • Syntax highlighting via PrismJS

Contents

Setup and Configuration

Setup

1. Install Gatsby CLI

The first step is to get the GatsbyJS CLI installed locally. This can be accomplished by running the command npm install --global gatsby-cli

2. Create a new Gatsby Site using this repo

When creating a new Gatsby site, the CLI allows you to specify a starter, in this case simply provide the URL for this repo. This can be accomplished by running the command gatsby new YOUR_BLOG_NAME https://github.com/RyanFitzgerald/devblog

3. Edit or use the template as needed

Now you that you are setup, you can simply use the blog or make edits as needed. For example, run gatsby develop to start up a hot-reloaded development environment available at localhost:8000 or run gatsby build to build an optimized production build. For a complete list of CLI commands for Gatsby, take a look at their documentation.

Alternative Setup

Alternatively, if you wish to simply fork this repo or clone it, then you simply need to run npm install and then gatsby develop afterwards and you'll be up and running.

Configuration

Basic configuration can be done via the config.js file in the root of the project repo. Through this file you can make edits to the primary color of the blog, add a blog author and description, and more. The defaults are as follows:

export default {
  title: 'Dev Blog', // Required
  author: 'Ryan Fitzgerald', // Required
  description: 'Full-stack Web Developer',
  primaryColor: '#3498db', // Required
  showHeaderImage: true,
  showShareButtons: true,
  postsPerPage: 5, // Required
  social: {
    website: 'https://ryanfitzgerald.ca',
    github: 'https://github.com/ryanfitzgerald',
    twitter: 'https://twitter.com/ryanafitzgerald',
    linkedin: 'https://ca.linkedin.com/in/ryanafitzgerald'
  }
};

Note: Any configuration option labelled as "Required" is needed for basic presentational purposes. Anything without the "Required" comment can be removed should you not want it used.

Understanding the configuration variables

The configuration variables referenced above are used as follows:

Variable Description of Use
title The title of the blog. This is used for the page title primarily.
author The author of the blog. This is used for the header name and page title.
description The description of the author. This is used for the header under the author.
primaryColor The primary color of the blog.
showHeaderImage Flag to show the header image or not.
showShareButtons Flag to show social media share buttons on each blog post or not.
postsPerPage The number of posts per page on the blog homepage. This is used for pagination.
social Social media profiles of the blog author. Currently only personal website, GitHub, Twitter, and LinkedIn are supported.

Changing the main header image

To change the default header image, simply override the main.jpg file in the /src folder.

Changing the favicon

To change the default favicon, simply override the favicon.ico file in the /src folder.

Creating New Posts

All blog posts can be found in /src/pages and are statically built once the gatsby build command is run. To create a new post, simply create a new folder in /src/pages with the name of the url you'd like to have. For example, if you wish to have the url appear as myblog.com/hello-world you would create the folder as hello-world. Once the folder is created, simply create an index.md file within it.

The top of the pages must all contain the same markdown which tells Gatsby the needed information about the specific post. The basic template is:

---
title: New Beginnings
date: "2018-07-01"
featuredImage: './featured.jpg'
---

This top portion is the beginning of the post and will show up as the excerpt on the homepage.

<!-- end -->

In the above code snippet all that is required is the title and the date. The featured image is optional and can be added by simply adding an image to the page folder you just created and referencing like the above example. The excerpt portion is optional as well and if you do not use the <!-- end --> marker, the first bit of the post will be used as the excerpt automatically.

This template ships with 3 blog post examples which contain everything from code snippet usage, inserting images, using featured images and excerpts, and more.

Deploying

Once you are ready to deploy the blog and make it live, you have a couple of options available to you.

Manual Deploy

Manually deploying the blog simply requires you run a gatsby build in order to create a production build. After that, you can use any server you'd normally a React app to, such as a Digital Ocean droplet or an AWS instance. All that is required is some way to serve the static files.

If you are unfamiliar with deploying React applications, there are a number of other options.

GitHub Pages

In order to deploy to GitHub pages, you need to first set your path prefix in gatsby-config.js. The default is pathPrefix: '/devblog' however this should be changed to whatever the repo name you chose is. For example, if you have the blog located in https://github.com/YOURUSERNAME/myblog and want it deployed to https://YOURUSERNAME.github.io/myblog then you would set the path prefix to pathPrefix: '/myblog'.

Next, simply run npm run deploy and your blog will be deployed.

Alternatively, if you wish to deploy it to https://YOURUSERNAME.github.io (i.e. your user / organization site and not a project site), then a couple addition changes are required. The official Gatsby documentation has them outlined well here.

Netlify

One of the easiest methods of deploying the blog would be to use Netlify. To deploy to Netlify, simply click the button below and follow the prompts.

Deploy to Netlify

Other

The options outlined above are not the only options available to you to deploy the blog. The official Gatsby documentation goes into detail about a number of other options. In order to read more about deployment options, click here.

Changelog

1.0.0

  • Initial release

2.0.0

  • Upgrade to Gatsby 2.0.31 (Big thanks to ttristan for the help)
  • Remove deprecated functions

License

Licensed under MIT License. See LICENSE.md for more.

devblog's People

Contributors

philhawksworth avatar ryanfitzgerald avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

devblog's Issues

npm outdated

Package                          Current   Wanted   Latest  Location  Depended by
gatsby                           MISSING  2.32.13   5.12.1  -         devblog
gatsby-image                     MISSING   1.0.55   3.11.0  -         devblog
gatsby-paginate                  MISSING    1.1.1    1.1.1  -         devblog
gatsby-plugin-feed               MISSING   2.13.1   5.12.0  -         devblog
gatsby-plugin-google-analytics   MISSING   2.11.0   5.12.0  -         devblog
gatsby-plugin-manifest           MISSING   2.12.1   5.12.0  -         devblog
gatsby-plugin-offline            MISSING   2.2.10   6.12.0  -         devblog
gatsby-plugin-react-helmet       MISSING   3.10.0   6.12.0  -         devblog
gatsby-plugin-sharp              MISSING   2.14.4   5.12.0  -         devblog
gatsby-remark-copy-linked-files  MISSING   2.10.0   6.12.0  -         devblog
gatsby-remark-images             MISSING    2.0.6   7.12.0  -         devblog
gatsby-remark-prismjs            MISSING   3.13.0   7.12.0  -         devblog
gatsby-remark-responsive-iframe  MISSING   2.11.0   6.12.0  -         devblog
gatsby-remark-smartypants        MISSING   2.10.0   6.12.0  -         devblog
gatsby-source-filesystem         MISSING   2.11.1   5.12.0  -         devblog
gatsby-transformer-remark        MISSING   2.16.1   6.12.0  -         devblog
gatsby-transformer-sharp         MISSING   2.12.1   5.12.0  -         devblog
lodash                           MISSING  4.17.21  4.17.21  -         devblog
prismjs                          MISSING   1.29.0   1.29.0  -         devblog
react                            MISSING  16.14.0   18.2.0  -         devblog
react-dom                        MISSING  16.14.0   18.2.0  -         devblog
react-helmet                     MISSING    5.2.1    6.1.0  -         devblog
styled-components                MISSING    4.4.1    6.0.7  -         devblog
styled-normalize                 MISSING    8.0.7    8.0.7  -         devblog

Compilation fails when there's no featuredImage field

I've tried adding a new post, but when running gatsby develop, the site won't compile anymore:

There was an error in your GraphQL query:

Cannot query field "featuredImage" on type "MarkdownRemarkFrontmatter".

If you don't expect "featuredImage" to exist on the type "MarkdownRemarkFrontmatter" it is most likely a typo.
However, if you expect "featuredImage" to exist there are a couple of solutions to common problems:

- If you added a new data source and/or changed something inside gatsby-node.js/gatsby-config.js, please try a restart of your development server
- The field might be accessible in another subfield, please try your query in GraphiQL and use the GraphiQL explorer to see which fields you can query and what shape they have
- You want to optionally use your field "featuredImage" and right now it is not used anywhere. Therefore Gatsby can't infer the type and add it to the GraphQL schema. A quick fix is to add a least one entry with that field ("dummy content")

It is recommended to explicitly type your GraphQL schema if you want to use optional fields. This way you don't have to add the mentioned "dummy content". Visit our docs to learn how you can define the schema for "MarkdownRemarkFrontmatter":
https://www.gatsbyjs.org/docs/schema-customization/#creating-type-definitions

File: E:/Website/src/templates/blog-post.js

This is the file I've added:

---
title: Test
date: "2020-06-08"
---

This is a test...

I've tried removing all other pages (no effect) and running gatsby clean before running gatsby develop/gatsby build (no effect). Adding an empty featuredImage field doesn't work either. But if I delete my pages and restore the 3 example ones, it compiles without problems.

In case it helps, I'm using Gatsby through NPM on Windows 10.

Is there anything I'm missing?

Thanks.

Lighthouse audit reports issues

I checked the demo linked in the readme with the Lighthouse audit in Chrome and it reports room for improvement. Some of those issues should be easy to fix. If I find the time this week, I will try to fix some of those.

screen shot 2018-07-23 at 20 01 38

screen shot 2018-07-23 at 20 01 57

Kindly Add Headless CMS & Dark Mode plus Question

Hi, how are you?
This theme is awesome.
Could you kindly add a headless cms like Netlify CMS or Forestry and Dark Mode.
Also how do i show the full post instead of summary on the homepage.
Looking to convert it into a microblog.
Kindly help me.

Changes for switching to styled components v4

The project wasn't working when I upgraded to styled-components v4 so I had to make a few changes.

Since

injectGlobal is deprecated we have to now use createGlobalStyle

I removed the global-styles.js file and put all of the code into layout.js

then I just did this:

screen shot 2019-02-15 at 10 56 14 pm

everything is working again but I'm kinda new so I didn't want to submit a PR if this isn't the way it should be done.

Pagination issue

there is a probleme with pagination example to go from second page to the third it doesn't modify the url by replacing 2 by 3 but it adds a'/3' and the same issue when you want to go back

Improve local setup prerequisite instructions

Issue description

Setting up the project locally requires one to have installed Python. This should be included in a prerequisite section to make it easier for beginners to setup the project.

Steps to reproduce

  • Install Node.js
  • Install Gatsby CLI globally - npm install --global gatsby-cli
  • Create a new Gatsby site: gatsby new demo https://github.com/myusername/devblog

Screenshot error

improve_installation_instruction

Deploy failed - Failing build

9:55:03 AM: Build ready to start
9:55:07 AM: build-image version: 0e2f4c52031ab562db66aec633308326e3b108d0 (focal)
9:55:07 AM: build-image tag: focal
9:55:07 AM: buildbot version: 584b2b7b74f1e479e0403f1e60769a2080b692a6
9:55:07 AM: Fetching cached dependencies
9:55:07 AM: Failed to fetch cache, continuing with build
9:55:07 AM: Starting to prepare the repo for build
9:55:07 AM: No cached dependencies found. Cloning fresh repo
9:55:07 AM: git clone https://github.com/RyanFitzgerald/devblog
9:55:08 AM: Preparing Git Reference refs/heads/master
9:55:08 AM: Parsing package.json dependencies
9:55:09 AM: Starting build script
9:55:09 AM: Installing dependencies
9:55:09 AM: Python version set to 2.7
9:55:10 AM: Downloading and installing node v16.16.0...
9:55:10 AM: Downloading https://nodejs.org/dist/v16.16.0/node-v16.16.0-linux-x64.tar.xz...
9:55:11 AM: Computing checksum with sha256sum
9:55:11 AM: Checksums matched!
9:55:13 AM: Now using node v16.16.0 (npm v8.11.0)
9:55:13 AM: Started restoring cached build plugins
9:55:13 AM: Finished restoring cached build plugins
9:55:13 AM: Attempting ruby version 2.7.2, read from environment
9:55:15 AM: Using ruby version 2.7.2
9:55:15 AM: Using PHP version 8.0
9:55:15 AM: No npm workspaces detected
9:55:15 AM: Started restoring cached node modules
9:55:15 AM: Finished restoring cached node modules
9:55:16 AM: Installing NPM modules using NPM version 8.11.0
9:55:16 AM: npm WARN config tmp This setting is no longer used.  npm stores temporary files in a special
9:55:16 AM: npm WARN config location in the cache, and they are managed by
9:55:16 AM: npm WARN config     [`cacache`](http://npm.im/cacache).
9:55:17 AM: npm WARN config tmp This setting is no longer used.  npm stores temporary files in a special
9:55:17 AM: npm WARN config location in the cache, and they are managed by
9:55:17 AM: npm WARN config     [`cacache`](http://npm.im/cacache).
9:55:18 AM: npm WARN old lockfile
9:55:18 AM: npm WARN old lockfile The package-lock.json file was created with an old version of npm,
9:55:18 AM: npm WARN old lockfile so supplemental metadata must be fetched from the registry.
9:55:18 AM: npm WARN old lockfile
9:55:18 AM: npm WARN old lockfile This is a one-time fix-up, please be patient...
9:55:18 AM: npm WARN old lockfile
9:55:34 AM: npm WARN ERESOLVE overriding peer dependency
9:55:34 AM: npm WARN While resolving: [email protected]
9:55:34 AM: npm WARN Found: [email protected]
9:55:34 AM: npm WARN node_modules/styled-components
9:55:34 AM: npm WARN   styled-components@"^4.2.0" from the root project
9:55:34 AM: npm WARN   1 more (styled-normalize)
9:55:34 AM: npm WARN
9:55:34 AM: npm WARN Could not resolve dependency:
9:55:34 AM: npm WARN peer styled-components@"^2.0.0 || ^3.3.3" from [email protected]
9:55:34 AM: npm WARN node_modules/styled-normalize
9:55:34 AM: npm WARN   styled-normalize@"^8.0.0" from the root project
9:55:35 AM: npm WARN EBADENGINE Unsupported engine {
9:55:35 AM: npm WARN EBADENGINE   package: '[email protected]',
9:55:35 AM: npm WARN EBADENGINE   required: { node: '>=0.10.0 <7' },
9:55:35 AM: npm WARN EBADENGINE   current: { node: 'v16.16.0', npm: '8.11.0' }
9:55:35 AM: npm WARN EBADENGINE }
9:55:52 AM: npm WARN deprecated [email protected]: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
9:55:53 AM: npm WARN deprecated [email protected]: 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.
9:55:53 AM: npm WARN deprecated [email protected]: 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
9:55:53 AM: npm WARN deprecated [email protected]: See https://github.com/lydell/source-map-url#deprecated
9:55:53 AM: npm WARN deprecated [email protected]: Critical bug fixed in v3.0.1, please upgrade to the latest version.
9:55:54 AM: npm WARN deprecated [email protected]: See https://github.com/lydell/source-map-resolve#deprecated
9:55:55 AM: npm WARN deprecated [email protected]: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
9:55:55 AM: npm WARN deprecated [email protected]: request has been deprecated, see https://github.com/request/request/issues/3142
9:55:57 AM: npm WARN deprecated [email protected]: Critical bug fixed in v2.0.1, please upgrade to the latest version.
9:55:58 AM: npm WARN deprecated [email protected]: Please use the native JSON object instead of JSON 3
9:55:58 AM: npm WARN deprecated [email protected]: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)
9:55:59 AM: npm WARN deprecated [email protected]: Please update to ini >=1.3.6 to avoid a prototype pollution issue
9:55:59 AM: npm WARN deprecated [email protected]: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
9:55:59 AM: npm WARN deprecated [email protected]: support for ECMAScript is superseded by `uglify-js` as of v3.13.0
9:56:00 AM: npm WARN deprecated [email protected]: this library is no longer supported
9:56:00 AM: npm WARN deprecated [email protected]: gulp-util is deprecated - replace it, following the guidelines at https://medium.com/gulpjs/gulp-util-ca3b1f9f9ac5
9:56:00 AM: npm WARN deprecated [email protected]: gatsby-image is now gatsby-plugin-image: https://npm.im/gatsby-plugin-image. This package will no longer receive updates.
9:56:00 AM: npm WARN deprecated [email protected]: GraphQL Import has been deprecated and merged into GraphQL Tools, so it will no longer get updates. Use GraphQL Tools instead to stay up-to-date! Check out https://www.graphql-tools.com/docs/migration-from-import for migration and https://the-guild.dev/blog/graphql-tools-v6 for new changes.
9:56:01 AM: npm WARN deprecated [email protected]: Fixed a prototype pollution security issue in 4.1.0, please upgrade to ^4.1.1 or ^5.0.1.
9:56:01 AM: npm WARN deprecated [email protected]: This SVGO version is no longer supported. Upgrade to v2.x.x.
9:56:02 AM: npm WARN deprecated [email protected]: This loader has been deprecated. Please use eslint-webpack-plugin
9:56:03 AM: npm WARN deprecated [email protected]: Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)
9:56:04 AM: npm WARN deprecated [email protected]: Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies
9:56:04 AM: npm WARN deprecated [email protected]: CircularJSON is in maintenance only, flatted is its successor.
9:56:04 AM: npm WARN deprecated [email protected]: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
9:56:06 AM: npm WARN deprecated [email protected]: babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.
9:56:08 AM: npm WARN deprecated [email protected]: Critical bug fixed in v3.0.1, please upgrade to the latest version.
9:56:09 AM: npm WARN deprecated [email protected]: update to [email protected]
9:56:09 AM: npm WARN deprecated [email protected]: This version of 'buffer' is out-of-date. You must update to v4.9.2 or newer
9:56:09 AM: npm WARN deprecated @babel/[email protected]: 🚨 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.
9:56:09 AM: npm WARN deprecated [email protected]: 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.
9:56:11 AM: npm WARN deprecated [email protected]: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.
9:56:12 AM: npm WARN deprecated [email protected]: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.
9:56:12 AM: npm WARN deprecated [email protected]: This version of 'buffer' is out-of-date. You must update to v3.6.2 or newer
9:56:12 AM: npm WARN deprecated [email protected]: update to [email protected]
9:56:13 AM: npm WARN deprecated [email protected]: https://github.com/lydell/resolve-url#deprecated
9:56:13 AM: npm WARN deprecated [email protected]: Please see https://github.com/lydell/urix#deprecated
9:56:13 AM: npm WARN deprecated [email protected]: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
9:56:14 AM: npm WARN deprecated [email protected]: 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.
9:56:16 AM: npm WARN deprecated [email protected]: This SVGO version is no longer supported. Upgrade to v2.x.x.
9:56:16 AM: npm WARN deprecated [email protected]: This package has been deprecated and now it only exports makeExecutableSchema.\nAnd it will no longer receive updates.\nWe recommend you to migrate to scoped packages such as @graphql-tools/schema, @graphql-tools/utils and etc.\nCheck out https://www.graphql-tools.com/ to learn what package you should use instead
9:56:19 AM: npm WARN deprecated [email protected]: 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, feature 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.
9:56:20 AM: npm WARN deprecated [email protected]: 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, feature 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.
9:56:33 AM: npm ERR! code 1
9:56:33 AM: npm ERR! path /opt/build/repo/node_modules/sharp
9:56:33 AM: npm ERR! command failed
9:56:33 AM: npm ERR! command sh -c (node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)
9:56:33 AM: npm ERR! make: Entering directory '/opt/build/repo/node_modules/sharp/build'
9:56:33 AM: npm ERR!   TOUCH Release/obj.target/libvips-cpp.stamp
9:56:33 AM: npm ERR!   CXX(target) Release/obj.target/sharp/src/common.o
9:56:33 AM: npm ERR! make: Leaving directory '/opt/build/repo/node_modules/sharp/build'
9:56:33 AM: npm ERR! info sharp Detected globally-installed libvips v8.9.1
9:56:33 AM: npm ERR! info sharp Building from source via node-gyp
9:56:33 AM: npm ERR! gyp info it worked if it ends with ok
9:56:33 AM: npm ERR! gyp info using [email protected]
9:56:33 AM: npm ERR! gyp info using [email protected] | linux | x64
9:56:33 AM: npm ERR! gyp info find Python using Python version 3.8.10 found at "/usr/bin/python3"
9:56:33 AM: npm ERR! gyp http GET https://nodejs.org/download/release/v16.16.0/node-v16.16.0-headers.tar.gz
9:56:33 AM: npm ERR! gyp http 200 https://nodejs.org/download/release/v16.16.0/node-v16.16.0-headers.tar.gz
9:56:33 AM: npm ERR! gyp http GET https://nodejs.org/download/release/v16.16.0/SHASUMS256.txt
9:56:33 AM: npm ERR! gyp http 200 https://nodejs.org/download/release/v16.16.0/SHASUMS256.txt
9:56:33 AM: npm ERR! gyp info spawn /usr/bin/python3
9:56:33 AM: npm ERR! gyp info spawn args [
9:56:33 AM: npm ERR! gyp info spawn args   '/opt/buildhome/.nvm/versions/node/v16.16.0/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
9:56:33 AM: npm ERR! gyp info spawn args   'binding.gyp',
9:56:33 AM: npm ERR! gyp info spawn args   '-f',
9:56:33 AM: npm ERR! gyp info spawn args   'make',
9:56:33 AM: npm ERR! gyp info spawn args   '-I',
9:56:33 AM: npm ERR! gyp info spawn args   '/opt/build/repo/node_modules/sharp/build/config.gypi',
9:56:33 AM: npm ERR! gyp info spawn args   '-I',
9:56:33 AM: npm ERR! gyp info spawn args   '/opt/buildhome/.nvm/versions/node/v16.16.0/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
9:56:33 AM: npm ERR! gyp info spawn args   '-I',
9:56:33 AM: npm ERR! gyp info spawn args   '/opt/buildhome/.cache/node-gyp/16.16.0/include/node/common.gypi',
9:56:33 AM: npm ERR! gyp info spawn args   '-Dlibrary=shared_library',
9:56:33 AM: npm ERR! gyp info spawn args   '-Dvisibility=default',
9:56:33 AM: npm ERR! gyp info spawn args   '-Dnode_root_dir=/opt/buildhome/.cache/node-gyp/16.16.0',
9:56:33 AM: npm ERR! gyp info spawn args   '-Dnode_gyp_dir=/opt/buildhome/.nvm/versions/node/v16.16.0/lib/node_modules/npm/node_modules/node-gyp',
9:56:33 AM: npm ERR! gyp info spawn args   '-Dnode_lib_file=/opt/buildhome/.cache/node-gyp/16.16.0/<(target_arch)/node.lib',
9:56:33 AM: npm ERR! gyp info spawn args   '-Dmodule_root_dir=/opt/build/repo/node_modules/sharp',
9:56:33 AM: npm ERR! gyp info spawn args   '-Dnode_engine=v8',
9:56:33 AM: npm ERR! gyp info spawn args   '--depth=.',
9:56:33 AM: npm ERR! gyp info spawn args   '--no-parallel',
9:56:33 AM: npm ERR! gyp info spawn args   '--generator-output',
9:56:33 AM: npm ERR! gyp info spawn args   'build',
9:56:33 AM: npm ERR! gyp info spawn args   '-Goutput_dir=.'
9:56:33 AM: npm ERR! gyp info spawn args ]
9:56:33 AM: npm ERR! gyp info spawn make
9:56:33 AM: npm ERR! gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
9:56:33 AM: npm ERR! In file included from /opt/buildhome/.cache/node-gyp/16.16.0/include/node/v8.h:30,
9:56:33 AM: npm ERR!                  from /opt/buildhome/.cache/node-gyp/16.16.0/include/node/node.h:63,
9:56:33 AM: npm ERR!                  from ../src/common.cc:22:
9:56:33 AM: npm ERR! /opt/buildhome/.cache/node-gyp/16.16.0/include/node/v8-internal.h: In function ‘void v8::internal::PerformCastCheck(T*)’:
9:56:33 AM: npm ERR! /opt/buildhome/.cache/node-gyp/16.16.0/include/node/v8-internal.h:492:38: error: ‘remove_cv_t’ is not a member of ‘std’; did you mean ‘remove_cv’?
9:56:33 AM: npm ERR!   492 |             !std::is_same<Data, std::remove_cv_t<T>>::value>::Perform(data);
9:56:33 AM: npm ERR!       |                                      ^~~~~~~~~~~
9:56:33 AM: npm ERR!       |                                      remove_cv
9:56:33 AM: npm ERR! /opt/buildhome/.cache/node-gyp/16.16.0/include/node/v8-internal.h:492:38: error: ‘remove_cv_t’ is not a member of ‘std’; did you mean ‘remove_cv’?
9:56:33 AM: npm ERR!   492 |             !std::is_same<Data, std::remove_cv_t<T>>::value>::Perform(data);
9:56:33 AM: npm ERR!       |                                      ^~~~~~~~~~~
9:56:33 AM: npm ERR!       |                                      remove_cv
9:56:33 AM: npm ERR! /opt/buildhome/.cache/node-gyp/16.16.0/include/node/v8-internal.h:492:50: error: template argument 2 is invalid
9:56:33 AM: npm ERR!   492 |             !std::is_same<Data, std::remove_cv_t<T>>::value>::Perform(data);
9:56:33 AM: npm ERR!       |                                                  ^
9:56:33 AM: npm ERR! /opt/buildhome/.cache/node-gyp/16.16.0/include/node/v8-internal.h:492:63: error: ‘::Perform’ has not been declared
9:56:33 AM: npm ERR!   492 |             !std::is_same<Data, std::remove_cv_t<T>>::value>::Perform(data);
9:56:33 AM: npm ERR!       |                                                               ^~~~~~~
9:56:33 AM: npm ERR! In file included from ../../nan/nan_converters.h:67,
9:56:33 AM: npm ERR!                  from ../../nan/nan.h:221,
9:56:33 AM: npm ERR!                  from ../src/common.cc:24:
9:56:33 AM: npm ERR! ../../nan/nan_converters_43_inl.h: In static member function ‘static Nan::imp::ToFactoryBase<v8::Boolean>::return_t Nan::imp::ToFactory<v8::Boolean>::convert(v8::Local<v8::Value>)’:
9:56:33 AM: npm ERR! ../../nan/nan_converters_43_inl.h:18:49: error: cannot convert ‘v8::Local<v8::Context>’ to ‘v8::Isolate*’
9:56:33 AM: npm ERR!    18 |       val->To ## TYPE(isolate->GetCurrentContext())                            \
9:56:33 AM: npm ERR!       |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~
9:56:33 AM: npm ERR!       |                                                 |
9:56:33 AM: npm ERR!       |                                                 v8::Local<v8::Context>
9:56:33 AM: npm ERR! ../../nan/nan_converters_43_inl.h:22:1: note: in expansion of macro ‘X’
9:56:33 AM: npm ERR!    22 | X(Boolean)
9:56:33 AM: npm ERR!       | ^
9:56:33 AM: npm ERR! In file included from /opt/buildhome/.cache/node-gyp/16.16.0/include/node/node.h:63,
9:56:33 AM: npm ERR!                  from ../src/common.cc:22:
9:56:33 AM: npm ERR! /opt/buildhome/.cache/node-gyp/16.16.0/include/node/v8.h:3086:37: note:   initializing argument 1 of ‘v8::Local<v8::Boolean> v8::Value::ToBoolean(v8::Isolate*) const’
9:56:33 AM: npm ERR!  3086 |   Local<Boolean> ToBoolean(Isolate* isolate) const;
9:56:33 AM: npm ERR!       |                            ~~~~~~~~~^~~~~~~
9:56:33 AM: npm ERR! In file included from ../../nan/nan_converters.h:67,
9:56:33 AM: npm ERR!                  from ../../nan/nan.h:221,
9:56:33 AM: npm ERR!                  from ../src/common.cc:24:
9:56:33 AM: npm ERR! ../../nan/nan_converters_43_inl.h: In static member function ‘static Nan::imp::ValueFactoryBase<bool>::return_t Nan::imp::ToFactory<bool>::convert(v8::Local<v8::Value>)’:
9:56:33 AM: npm ERR! ../../nan/nan_converters_43_inl.h:37:55: error: cannot convert ‘v8::Local<v8::Context>’ to ‘v8::Isolate*’
9:56:33 AM: npm ERR!    37 |   return val->NAME ## Value(isolate->GetCurrentContext());                     \
9:56:33 AM: npm ERR!       |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~^~
9:56:33 AM: npm ERR!       |                                                       |
9:56:33 AM: npm ERR!       |                                                       v8::Local<v8::Context>
9:56:33 AM: npm ERR! ../../nan/nan_converters_43_inl.h:40:1: note: in expansion of macro ‘X’
9:56:33 AM: npm ERR!    40 | X(bool, Boolean)
9:56:33 AM: npm ERR!       | ^
9:56:33 AM: npm ERR! In file included from /opt/buildhome/.cache/node-gyp/16.16.0/include/node/node.h:63,
9:56:33 AM: npm ERR!                  from ../src/common.cc:22:
9:56:33 AM: npm ERR! /opt/buildhome/.cache/node-gyp/16.16.0/include/node/v8.h:3096:30: note:   initializing argument 1 of ‘bool v8::Value::BooleanValue(v8::Isolate*) const’
9:56:33 AM: npm ERR!  3096 |   bool BooleanValue(Isolate* isolate) const;
9:56:33 AM: npm ERR!       |                     ~~~~~~~~~^~~~~~~
9:56:33 AM: npm ERR! In file included from ../../nan/nan_new.h:189,
9:56:33 AM: npm ERR!                  from ../../nan/nan.h:222,
9:56:33 AM: npm ERR!                  from ../src/common.cc:24:
9:56:33 AM: npm ERR! ../../nan/nan_implementation_12_inl.h: In static member function ‘static Nan::imp::FactoryBase<v8::Function>::return_t Nan::imp::Factory<v8::Function>::New(Nan::FunctionCallback, v8::Local<v8::Value>)’:
9:56:33 AM: npm ERR! ../../nan/nan_implementation_12_inl.h:103:42: error: cannot convert ‘v8::Isolate*’ to ‘v8::Local<v8::Context>’
9:56:33 AM: npm ERR!   103 |   return scope.Escape(v8::Function::New( isolate
9:56:33 AM: npm ERR!       |                                          ^~~~~~~
9:56:33 AM: npm ERR!       |                                          |
9:56:33 AM: npm ERR!       |                                          v8::Isolate*
9:56:33 AM: npm ERR! In file included from /opt/buildhome/.cache/node-gyp/16.16.0/include/node/node.h:63,
9:56:33 AM: npm ERR!                  from ../src/common.cc:22:
9:56:33 AM: npm ERR! /opt/buildhome/.cache/node-gyp/16.16.0/include/node/v8.h:4754:22: note:   initializing argument 1 of ‘static v8::MaybeLocal<v8::Function> v8::Function::New(v8::Local<v8::Context>, v8::FunctionCallback, v8::Local<v8::Value>, int, v8::ConstructorBehavior, v8::SideEffectType)’
9:56:33 AM: npm ERR!  4754 |       Local<Context> context, FunctionCallback callback,
9:56:33 AM: npm ERR!       |       ~~~~~~~~~~~~~~~^~~~~~~
9:56:33 AM: npm ERR! In file included from ../src/common.cc:24:
9:56:33 AM: npm ERR! ../../nan/nan.h: In constructor ‘Nan::Utf8String::Utf8String(v8::Local<v8::Value>)’:
9:56:33 AM: npm ERR! ../../nan/nan.h:1064:76: error: cannot convert ‘v8::Isolate*’ to ‘v8::Local<v8::Context>’
9:56:33 AM: npm ERR!  1064 |       v8::Local<v8::String> string = from->ToString(v8::Isolate::GetCurrent());
9:56:33 AM: npm ERR!       |                                                     ~~~~~~~~~~~~~~~~~~~~~~~^~
9:56:33 AM: npm ERR!       |                                                                            |
9:56:33 AM: npm ERR!       |                                                                            v8::Isolate*
9:56:33 AM: npm ERR! In file included from /opt/buildhome/.cache/node-gyp/16.16.0/include/node/node.h:63,
9:56:33 AM: npm ERR!                  from ../src/common.cc:22:
9:56:33 AM: npm ERR! /opt/buildhome/.cache/node-gyp/16.16.0/include/node/v8.h:3049:22: note:   initializing argument 1 of ‘v8::MaybeLocal<v8::String> v8::Value::ToString(v8::Local<v8::Context>) const’
9:56:33 AM: npm ERR!  3049 |       Local<Context> context) const;
9:56:33 AM: npm ERR!       |       ~~~~~~~~~~~~~~~^~~~~~~
9:56:33 AM: npm ERR! In file included from ../src/common.cc:24:
9:56:33 AM: npm ERR! ../../nan/nan.h: In member function ‘void Nan::AsyncWorker::SaveToPersistent(const char*, const v8::Local<v8::Value>&)’:
9:56:33 AM: npm ERR! ../../nan/nan.h:1855:64: error: no matching function for call to ‘v8::Object::Set(v8::Local<v8::String>, const v8::Local<v8::Value>&)’
9:56:33 AM: npm ERR!  1855 |     New(persistentHandle)->Set(New(key).ToLocalChecked(), value);
9:56:33 AM: npm ERR!       |                                                                ^
9:56:33 AM: npm ERR! In file included from /opt/buildhome/.cache/node-gyp/16.16.0/include/node/node.h:63,
9:56:33 AM: npm ERR!                  from ../src/common.cc:22:
9:56:33 AM: npm ERR! /opt/buildhome/.cache/node-gyp/16.16.0/include/node/v8.h:3961:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>)’
9:56:33 AM: npm ERR!  3961 |   V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
9:56:33 AM: npm ERR!       |                                     ^~~
9:56:33 AM: npm ERR! /opt/buildhome/.cache/node-gyp/16.16.0/include/node/v8.h:3961:37: note:   candidate expects 3 arguments, 2 provided
9:56:33 AM: npm ERR! /opt/buildhome/.cache/node-gyp/16.16.0/include/node/v8.h:3964:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, uint32_t, v8::Local<v8::Value>)’
9:56:33 AM: npm ERR!  3964 |   V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
9:56:33 AM: npm ERR!       |                                     ^~~
9:56:33 AM: npm ERR! /opt/buildhome/.cache/node-gyp/16.16.0/include/node/v8.h:3964:37: note:   candidate expects 3 arguments, 2 provided
9:56:33 AM: npm ERR! In file included from ../src/common.cc:24:
9:56:33 AM: npm ERR! ../../nan/nan.h: In member function ‘void Nan::AsyncWorker::SaveToPersistent(const v8::Local<v8::String>&, const v8::Local<v8::Value>&)’:
9:56:33 AM: npm ERR! ../../nan/nan.h:1861:42: error: no matching function for call to ‘v8::Object::Set(const v8::Local<v8::String>&, const v8::Local<v8::Value>&)’
9:56:33 AM: npm ERR!  1861 |     New(persistentHandle)->Set(key, value);
9:56:33 AM: npm ERR!       |                                          ^
9:56:33 AM: npm ERR! In file included from /opt/buildhome/.cache/node-gyp/16.16.0/include/node/node.h:63,
9:56:33 AM: npm ERR!                  from ../src/common.cc:22:
9:56:33 AM: npm ERR! /opt/buildhome/.cache/node-gyp/16.16.0/include/node/v8.h:3961:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>)’
9:56:33 AM: npm ERR!  3961 |   V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
9:56:33 AM: npm ERR!       |                                     ^~~
9:56:33 AM: npm ERR! /opt/buildhome/.cache/node-gyp/16.16.0/include/node/v8.h:3961:37: note:   candidate expects 3 arguments, 2 provided
9:56:33 AM: npm ERR! /opt/buildhome/.cache/node-gyp/16.16.0/include/node/v8.h:3964:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, uint32_t, v8::Local<v8::Value>)’
9:56:33 AM: npm ERR!  3964 |   V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
9:56:33 AM: npm ERR!       |                                     ^~~
9:56:33 AM: npm ERR! /opt/buildhome/.cache/node-gyp/16.16.0/include/node/v8.h:3964:37: note:   candidate expects 3 arguments, 2 provided
9:56:33 AM: npm ERR! In file included from ../src/common.cc:24:
9:56:33 AM: npm ERR! ../../nan/nan.h: In member function ‘void Nan::AsyncWorker::SaveToPersistent(uint32_t, const v8::Local<v8::Value>&)’:
9:56:33 AM: npm ERR! ../../nan/nan.h:1867:44: error: no matching function for call to ‘v8::Object::Set(uint32_t&, const v8::Local<v8::Value>&)’
9:56:33 AM: npm ERR!  1867 |     New(persistentHandle)->Set(index, value);
9:56:33 AM: npm ERR!       |                                            ^
9:56:33 AM: npm ERR! In file included from /opt/buildhome/.cache/node-gyp/16.16.0/include/node/node.h:63,
9:56:33 AM: npm ERR!                  from ../src/common.cc:22:
9:56:33 AM: npm ERR! /opt/buildhome/.cache/node-gyp/16.16.0/include/node/v8.h:3961:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>)’
9:56:33 AM: npm ERR!  3961 |   V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
9:56:33 AM: npm ERR!       |                                     ^~~
9:56:33 AM: npm ERR! /opt/buildhome/.cache/node-gyp/16.16.0/include/node/v8.h:3961:37: note:   candidate expects 3 arguments, 2 provided
9:56:33 AM: npm ERR! /opt/buildhome/.cache/node-gyp/16.16.0/include/node/v8.h:3964:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, uint32_t, v8::Local<v8::Value>)’
9:56:33 AM: npm ERR!  3964 |   V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
9:56:33 AM: npm ERR!       |                                     ^~~
9:56:33 AM: npm ERR! /opt/buildhome/.cache/node-gyp/16.16.0/include/node/v8.h:3964:37: note:   candidate expects 3 arguments, 2 provided
9:56:33 AM: npm ERR! In file included from ../src/common.cc:24:
9:56:33 AM: npm ERR! ../../nan/nan.h: In member function ‘v8::Local<v8::Value> Nan::AsyncWorker::GetFromPersistent(const char*) const’:
9:56:33 AM: npm ERR! ../../nan/nan.h:1873:61: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>)’
9:56:33 AM: npm ERR!  1873 |         New(persistentHandle)->Get(New(key).ToLocalChecked()));
9:56:33 AM: npm ERR!       |                                                             ^
9:56:33 AM: npm ERR! In file included from /opt/buildhome/.cache/node-gyp/16.16.0/include/node/node.h:63,
9:56:33 AM: npm ERR!                  from ../src/common.cc:22:
9:56:33 AM: npm ERR! /opt/buildhome/.cache/node-gyp/16.16.0/include/node/v8.h:4007:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
9:56:33 AM: npm ERR!  4007 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
9:56:33 AM: npm ERR!       |                                           ^~~
9:56:33 AM: npm ERR! /opt/buildhome/.cache/node-gyp/16.16.0/include/node/v8.h:4007:43: note:   candidate expects 2 arguments, 1 provided
9:56:33 AM: npm ERR! /opt/buildhome/.cache/node-gyp/16.16.0/include/node/v8.h:4010:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
9:56:33 AM: npm ERR!  4010 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
9:56:33 AM: npm ERR!       |                                           ^~~
9:56:33 AM: npm ERR! /opt/buildhome/.cache/node-gyp/16.16.0/include/node/v8.h:4010:43: note:   candidate expects 2 arguments, 1 provided
9:56:33 AM: npm ERR! In file included from ../src/common.cc:24:
9:56:33 AM: npm ERR! ../../nan/nan.h: In member function ‘v8::Local<v8::Value> Nan::AsyncWorker::GetFromPersistent(const v8::Local<v8::String>&) const’:
9:56:33 AM: npm ERR! ../../nan/nan.h:1879:55: error: no matching function for call to ‘v8::Object::Get(const v8::Local<v8::String>&)’
9:56:33 AM: npm ERR!  1879 |     return scope.Escape(New(persistentHandle)->Get(key));
9:56:33 AM: npm ERR!       |                                                       ^
9:56:33 AM: npm ERR! In file included from /opt/buildhome/.cache/node-gyp/16.16.0/include/node/node.h:63,
9:56:33 AM: npm ERR!                  from ../src/common.cc:22:
9:56:33 AM: npm ERR! /opt/buildhome/.cache/node-gyp/16.16.0/include/node/v8.h:4007:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
9:56:33 AM: npm ERR!  4007 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
9:56:33 AM: npm ERR!       |                                           ^~~
9:56:33 AM: npm ERR! /opt/buildhome/.cache/node-gyp/16.16.0/include/node/v8.h:4007:43: note:   candidate expects 2 arguments, 1 provided
9:56:33 AM: npm ERR! /opt/buildhome/.cache/node-gyp/16.16.0/include/node/v8.h:4010:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
9:56:33 AM: npm ERR!  4010 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
9:56:33 AM: npm ERR!       |                                           ^~~
9:56:33 AM: npm ERR! /opt/buildhome/.cache/node-gyp/16.16.0/include/node/v8.h:4010:43: note:   candidate expects 2 arguments, 1 provided
9:56:33 AM: npm ERR! In file included from ../src/common.cc:24:
9:56:33 AM: npm ERR! ../../nan/nan.h: In member function ‘v8::Local<v8::Value> Nan::AsyncWorker::GetFromPersistent(uint32_t) const’:
9:56:33 AM: npm ERR! ../../nan/nan.h:1884:57: error: no matching function for call to ‘v8::Object::Get(uint32_t&)’
9:56:33 AM: npm ERR!  1884 |     return scope.Escape(New(persistentHandle)->Get(index));
9:56:33 AM: npm ERR!       |                                                         ^
9:56:33 AM: npm ERR! In file included from /opt/buildhome/.cache/node-gyp/16.16.0/include/node/node.h:63,
9:56:33 AM: npm ERR!                  from ../src/common.cc:22:
9:56:33 AM: npm ERR! /opt/buildhome/.cache/node-gyp/16.16.0/include/node/v8.h:4007:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
9:56:33 AM: npm ERR!  4007 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
9:56:33 AM: npm ERR!       |                                           ^~~
9:56:33 AM: npm ERR! /opt/buildhome/.cache/node-gyp/16.16.0/include/node/v8.h:4007:43: note:   candidate expects 2 arguments, 1 provided
9:56:33 AM: npm ERR! /opt/buildhome/.cache/node-gyp/16.16.0/include/node/v8.h:4010:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
9:56:33 AM: npm ERR!  4010 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
9:56:33 AM: npm ERR!       |                                           ^~~
9:56:33 AM: npm ERR! /opt/buildhome/.cache/node-gyp/16.16.0/include/node/v8.h:4010:43: note:   candidate expects 2 arguments, 1 provided
9:56:33 AM: npm ERR! In file included from ../src/common.cc:24:
9:56:33 AM: npm ERR! ../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
9:56:33 AM: npm ERR! ../../nan/nan.h:2208:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
9:56:33 AM: npm ERR!  2208 |     , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
9:56:33 AM: npm ERR!       |                                                              ^
9:56:33 AM: npm ERR! In file included from /usr/include/c++/9/cassert:44,
9:56:33 AM: npm ERR!                  from /opt/buildhome/.cache/node-gyp/16.16.0/include/node/node_object_wrap.h:26,
9:56:33 AM: npm ERR!                  from ../../nan/nan.h:54,
9:56:33 AM: npm ERR!                  from ../src/common.cc:24:
9:56:33 AM: npm ERR! ../../nan/nan_object_wrap.h: In destructor ‘virtual Nan::ObjectWrap::~ObjectWrap()’:
9:56:33 AM: npm ERR! ../../nan/nan_object_wrap.h:24:25: error: ‘class Nan::Persistent<v8::Object>’ has no member named ‘IsNearDeath’
9:56:33 AM: npm ERR!    24 |     assert(persistent().IsNearDeath());
9:56:33 AM: npm ERR!       |                         ^~~~~~~~~~~
9:56:33 AM: npm ERR! In file included from ../../nan/nan.h:2698,
9:56:33 AM: npm ERR!                  from ../src/common.cc:24:
9:56:33 AM: npm ERR! ../../nan/nan_object_wrap.h: In member function ‘void Nan::ObjectWrap::MakeWeak()’:
9:56:33 AM: npm ERR! ../../nan/nan_object_wrap.h:67:18: error: ‘class Nan::Persistent<v8::Object>’ has no member named ‘MarkIndependent’
9:56:33 AM: npm ERR!    67 |     persistent().MarkIndependent();
9:56:33 AM: npm ERR!       |                  ^~~~~~~~~~~~~~~
9:56:33 AM: npm ERR! In file included from /usr/include/c++/9/cassert:44,
9:56:33 AM: npm ERR!                  from /opt/buildhome/.cache/node-gyp/16.16.0/include/node/node_object_wrap.h:26,
9:56:33 AM: npm ERR!                  from ../../nan/nan.h:54,
9:56:33 AM: npm ERR!                  from ../src/common.cc:24:
9:56:33 AM: npm ERR! ../../nan/nan_object_wrap.h: In static member function ‘static void Nan::ObjectWrap::WeakCallback(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’:
9:56:33 AM: npm ERR! ../../nan/nan_object_wrap.h:124:26: error: ‘class Nan::Persistent<v8::Object>’ has no member named ‘IsNearDeath’
9:56:33 AM: npm ERR!   124 |     assert(wrap->handle_.IsNearDeath());
9:56:33 AM: npm ERR!       |                          ^~~~~~~~~~~
9:56:33 AM: npm ERR! In file included from ../src/common.cc:27:
9:56:33 AM: npm ERR! ../src/common.h: At global scope:
9:56:33 AM: npm ERR! ../src/common.h:78:20: error: ‘Handle’ is not a member of ‘v8’; did you mean ‘JobHandle’?
9:56:33 AM: npm ERR!    78 |   bool HasAttr(v8::Handle<v8::Object> obj, std::string attr);
9:56:33 AM: npm ERR!       |                    ^~~~~~
9:56:33 AM: npm ERR!       |                    JobHandle
9:56:33 AM: npm ERR! ../src/common.h:78:37: error: expected primary-expression before ‘>’ token
9:56:33 AM: npm ERR!    78 |   bool HasAttr(v8::Handle<v8::Object> obj, std::string attr);
9:56:33 AM: npm ERR!       |                                     ^
9:56:33 AM: npm ERR! ../src/common.h:78:39: error: ‘obj’ was not declared in this scope
9:56:33 AM: npm ERR!    78 |   bool HasAttr(v8::Handle<v8::Object> obj, std::string attr);
9:56:33 AM: npm ERR!       |                                       ^~~
9:56:33 AM: npm ERR! ../src/common.h:78:56: error: expected primary-expression before ‘attr’
9:56:33 AM: npm ERR!    78 |   bool HasAttr(v8::Handle<v8::Object> obj, std::string attr);
9:56:33 AM: npm ERR!       |                                                        ^~~~
9:56:33 AM: npm ERR! ../src/common.h:78:60: error: expression list treated as compound expression in initializer [-fpermissive]
9:56:33 AM: npm ERR!    78 |   bool HasAttr(v8::Handle<v8::Object> obj, std::string attr);
9:56:33 AM: npm ERR!       |                                                            ^
9:56:33 AM: npm ERR! ../src/common.h:79:29: error: ‘Handle’ is not a member of ‘v8’; did you mean ‘JobHandle’?
9:56:33 AM: npm ERR!    79 |   std::string AttrAsStr(v8::Handle<v8::Object> obj, std::string attr);
9:56:33 AM: npm ERR!       |                             ^~~~~~
9:56:33 AM: npm ERR!       |                             JobHandle
9:56:33 AM: npm ERR! ../src/common.h:79:46: error: expected primary-expression before ‘>’ token
9:56:33 AM: npm ERR!    79 |   std::string AttrAsStr(v8::Handle<v8::Object> obj, std::string attr);
9:56:33 AM: npm ERR!       |                                              ^
9:56:33 AM: npm ERR! ../src/common.h:79:48: error: ‘obj’ was not declared in this scope
9:56:33 AM: npm ERR!    79 |   std::string AttrAsStr(v8::Handle<v8::Object> obj, std::string attr);
9:56:33 AM: npm ERR!       |                                                ^~~
9:56:33 AM: npm ERR! ../src/common.h:79:65: error: expected primary-expression before ‘attr’
9:56:33 AM: npm ERR!    79 |   std::string AttrAsStr(v8::Handle<v8::Object> obj, std::string attr);
9:56:33 AM: npm ERR!       |                                                                 ^~~~
9:56:33 AM: npm ERR! ../src/common.h:80:38: error: ‘Handle’ is not a member of ‘v8’; did you mean ‘JobHandle’?
9:56:33 AM: npm ERR!    80 |   std::vector<double> AttrAsRgba(v8::Handle<v8::Object> obj, std::string attr);
9:56:33 AM: npm ERR!       |                                      ^~~~~~
9:56:33 AM: npm ERR!       |                                      JobHandle
9:56:33 AM: npm ERR! ../src/common.h:80:55: error: expected primary-expression before ‘>’ token
9:56:33 AM: npm ERR!    80 |   std::vector<double> AttrAsRgba(v8::Handle<v8::Object> obj, std::string attr);
9:56:33 AM: npm ERR!       |                                                       ^
9:56:33 AM: npm ERR! ../src/common.h:80:57: error: ‘obj’ was not declared in this scope
9:56:33 AM: npm ERR!    80 |   std::vector<double> AttrAsRgba(v8::Handle<v8::Object> obj, std::string attr);
9:56:33 AM: npm ERR!       |                                                         ^~~
9:56:33 AM: npm ERR! ../src/common.h:80:74: error: expected primary-expression before ‘attr’
9:56:33 AM: npm ERR!    80 |   std::vector<double> AttrAsRgba(v8::Handle<v8::Object> obj, std::string attr);
9:56:33 AM: npm ERR!       |                                                                          ^~~~
9:56:33 AM: npm ERR! ../src/common.h:81:48: error: ‘Handle’ is not a member of ‘v8’; did you mean ‘JobHandle’?
9:56:33 AM: npm ERR!    81 |   template<typename T> v8::Local<T> AttrAs(v8::Handle<v8::Object> obj, std::string attr) {
9:56:33 AM: npm ERR!       |                                                ^~~~~~
9:56:33 AM: npm ERR!       |                                                JobHandle
9:56:33 AM: npm ERR! ../src/common.h:81:65: error: expected primary-expression before ‘>’ token
9:56:33 AM: npm ERR!    81 |   template<typename T> v8::Local<T> AttrAs(v8::Handle<v8::Object> obj, std::string attr) {
9:56:33 AM: npm ERR!       |                                                                 ^
9:56:33 AM: npm ERR! ../src/common.h:81:67: error: ‘obj’ was not declared in this scope
9:56:33 AM: npm ERR!    81 |   template<typename T> v8::Local<T> AttrAs(v8::Handle<v8::Object> obj, std::string attr) {
9:56:33 AM: npm ERR!       |                                                                   ^~~
9:56:33 AM: npm ERR! ../src/common.h:81:84: error: expected primary-expression before ‘attr’
9:56:33 AM: npm ERR!    81 |   template<typename T> v8::Local<T> AttrAs(v8::Handle<v8::Object> obj, std::string attr) {
9:56:33 AM: npm ERR!       |                                                                                    ^~~~
9:56:33 AM: npm ERR! ../src/common.h:81:37: warning: variable templates only available with ‘-std=c++14’ or ‘-std=gnu++14’
9:56:33 AM: npm ERR!    81 |   template<typename T> v8::Local<T> AttrAs(v8::Handle<v8::Object> obj, std::string attr) {
9:56:33 AM: npm ERR!       |                                     ^~~~~~
9:56:33 AM: npm ERR! ../src/common.h:81:89: error: expected ‘;’ before ‘{’ token
9:56:33 AM: npm ERR!    81 |   template<typename T> v8::Local<T> AttrAs(v8::Handle<v8::Object> obj, std::string attr) {
9:56:33 AM: npm ERR!       |                                                                                         ^~
9:56:33 AM: npm ERR!       |                                                                                         ;
9:56:33 AM: npm ERR! ../src/common.h:84:37: error: ‘Handle’ is not a member of ‘v8’; did you mean ‘JobHandle’?
9:56:33 AM: npm ERR!    84 |   template<typename T> T AttrTo(v8::Handle<v8::Object> obj, std::string attr) {
9:56:33 AM: npm ERR!       |                                     ^~~~~~
9:56:33 AM: npm ERR!       |                                     JobHandle
9:56:33 AM: npm ERR! ../src/common.h:84:54: error: expected primary-expression before ‘>’ token
9:56:33 AM: npm ERR!    84 |   template<typename T> T AttrTo(v8::Handle<v8::Object> obj, std::string attr) {
9:56:33 AM: npm ERR!       |                                                      ^
9:56:33 AM: npm ERR! ../src/common.h:84:56: error: ‘obj’ was not declared in this scope
9:56:33 AM: npm ERR!    84 |   template<typename T> T AttrTo(v8::Handle<v8::Object> obj, std::string attr) {
9:56:33 AM: npm ERR!       |                                                        ^~~
9:56:33 AM: npm ERR! ../src/common.h:84:73: error: expected primary-expression before ‘attr’
9:56:33 AM: npm ERR!    84 |   template<typename T> T AttrTo(v8::Handle<v8::Object> obj, std::string attr) {
9:56:33 AM: npm ERR!       |                                                                         ^~~~
9:56:33 AM: npm ERR! ../src/common.h:84:26: warning: variable templates only available with ‘-std=c++14’ or ‘-std=gnu++14’
9:56:33 AM: npm ERR!    84 |   template<typename T> T AttrTo(v8::Handle<v8::Object> obj, std::string attr) {
9:56:33 AM: npm ERR!       |                          ^~~~~~
9:56:33 AM: npm ERR! ../src/common.h:84:78: error: expected ‘;’ before ‘{’ token
9:56:33 AM: npm ERR!    84 |   template<typename T> T AttrTo(v8::Handle<v8::Object> obj, std::string attr) {
9:56:33 AM: npm ERR!       |                                                                              ^~
9:56:33 AM: npm ERR!       |                                                                              ;
9:56:33 AM: npm ERR! ../src/common.h:87:37: error: ‘Handle’ is not a member of ‘v8’; did you mean ‘JobHandle’?
9:56:33 AM: npm ERR!    87 |   template<typename T> T AttrTo(v8::Handle<v8::Object> obj, int attr) {
9:56:33 AM: npm ERR!       |                                     ^~~~~~
9:56:33 AM: npm ERR!       |                                     JobHandle
9:56:33 AM: npm ERR! ../src/common.h:87:54: error: expected primary-expression before ‘>’ token
9:56:33 AM: npm ERR!    87 |   template<typename T> T AttrTo(v8::Handle<v8::Object> obj, int attr) {
9:56:33 AM: npm ERR!       |                                                      ^
9:56:33 AM: npm ERR! ../src/common.h:87:56: error: ‘obj’ was not declared in this scope
9:56:33 AM: npm ERR!    87 |   template<typename T> T AttrTo(v8::Handle<v8::Object> obj, int attr) {
9:56:33 AM: npm ERR!       |                                                        ^~~
9:56:33 AM: npm ERR! ../src/common.h:87:61: error: expected primary-expression before ‘int’
9:56:33 AM: npm ERR!    87 |   template<typename T> T AttrTo(v8::Handle<v8::Object> obj, int attr) {
9:56:33 AM: npm ERR!       |                                                             ^~~
9:56:33 AM: npm ERR! ../src/common.h:84:26: warning: variable templates only available with ‘-std=c++14’ or ‘-std=gnu++14’
9:56:33 AM: npm ERR!    84 |   template<typename T> T AttrTo(v8::Handle<v8::Object> obj, std::string attr) {
9:56:33 AM: npm ERR!       |                          ^~~~~~
9:56:33 AM: npm ERR! ../src/common.h:87:70: error: expected ‘;’ before ‘{’ token
9:56:33 AM: npm ERR!    87 |   template<typename T> T AttrTo(v8::Handle<v8::Object> obj, int attr) {
9:56:33 AM: npm ERR!       |                                                                      ^~
9:56:33 AM: npm ERR!       |                                                                      ;
9:56:33 AM: npm ERR! ../src/common.h:93:9: error: ‘Handle’ is not a member of ‘v8’; did you mean ‘JobHandle’?
9:56:33 AM: npm ERR!    93 |     v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist);
9:56:33 AM: npm ERR!       |         ^~~~~~
9:56:33 AM: npm ERR!       |         JobHandle
9:56:33 AM: npm ERR! ../src/common.h:93:26: error: expected primary-expression before ‘>’ token
9:56:33 AM: npm ERR!    93 |     v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist);
9:56:33 AM: npm ERR!       |                          ^
9:56:33 AM: npm ERR! ../src/common.h:93:28: error: ‘input’ was not declared in this scope
9:56:33 AM: npm ERR!    93 |     v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist);
9:56:33 AM: npm ERR!       |                            ^~~~~
9:56:33 AM: npm ERR! ../src/common.h:93:70: error: expected primary-expression before ‘&’ token
9:56:33 AM: npm ERR!    93 |     v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist);
9:56:33 AM: npm ERR!       |                                                                      ^
9:56:33 AM: npm ERR! ../src/common.h:93:71: error: ‘buffersToPersist’ was not declared in this scope
9:56:33 AM: npm ERR!    93 |     v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist);
9:56:33 AM: npm ERR!       |                                                                       ^~~~~~~~~~~~~~~~
9:56:33 AM: npm ERR! ../src/common.h:93:87: error: expression list treated as compound expression in initializer [-fpermissive]
9:56:33 AM: npm ERR!    93 |     v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist);
9:56:33 AM: npm ERR!       |                                                                                       ^
9:56:33 AM: npm ERR! ../src/common.cc:34:8: error: redefinition of ‘bool sharp::HasAttr’
9:56:33 AM: npm ERR!    34 |   bool HasAttr(v8::Handle<v8::Object> obj, std::string attr) {
9:56:33 AM: npm ERR!       |        ^~~~~~~
9:56:33 AM: npm ERR! In file included from ../src/common.cc:27:
9:56:33 AM: npm ERR! ../src/common.h:78:8: note: ‘bool sharp::HasAttr’ previously defined here
9:56:33 AM: npm ERR!    78 |   bool HasAttr(v8::Handle<v8::Object> obj, std::string attr);
9:56:33 AM: npm ERR!       |        ^~~~~~~
9:56:33 AM: npm ERR! ../src/common.cc:34:20: error: ‘Handle’ is not a member of ‘v8’; did you mean ‘JobHandle’?
9:56:33 AM: npm ERR!    34 |   bool HasAttr(v8::Handle<v8::Object> obj, std::string attr) {
9:56:33 AM: npm ERR!       |                    ^~~~~~
9:56:33 AM: npm ERR!       |                    JobHandle
9:56:33 AM: npm ERR! ../src/common.cc:34:37: error: expected primary-expression before ‘>’ token
9:56:33 AM: npm ERR!    34 |   bool HasAttr(v8::Handle<v8::Object> obj, std::string attr) {
9:56:33 AM: npm ERR!       |                                     ^
9:56:33 AM: npm ERR! ../src/common.cc:34:39: error: ‘obj’ was not declared in this scope
9:56:33 AM: npm ERR!    34 |   bool HasAttr(v8::Handle<v8::Object> obj, std::string attr) {
9:56:33 AM: npm ERR!       |                                       ^~~
9:56:33 AM: npm ERR! ../src/common.cc:34:56: error: expected primary-expression before ‘attr’
9:56:33 AM: npm ERR!    34 |   bool HasAttr(v8::Handle<v8::Object> obj, std::string attr) {
9:56:33 AM: npm ERR!       |                                                        ^~~~
9:56:33 AM: npm ERR! ../src/common.cc:37:15: error: redefinition of ‘std::string sharp::AttrAsStr’
9:56:33 AM: npm ERR!    37 |   std::string AttrAsStr(v8::Handle<v8::Object> obj, std::string attr) {
9:56:33 AM: npm ERR!       |               ^~~~~~~~~
9:56:33 AM: npm ERR! In file included from ../src/common.cc:27:
9:56:33 AM: npm ERR! ../src/common.h:79:15: note: ‘std::string sharp::AttrAsStr’ previously declared here
9:56:33 AM: npm ERR!    79 |   std::string AttrAsStr(v8::Handle<v8::Object> obj, std::string attr);
9:56:33 AM: npm ERR!       |               ^~~~~~~~~
9:56:33 AM: npm ERR! ../src/common.cc:37:29: error: ‘Handle’ is not a member of ‘v8’; did you mean ‘JobHandle’?
9:56:33 AM: npm ERR!    37 |   std::string AttrAsStr(v8::Handle<v8::Object> obj, std::string attr) {
9:56:33 AM: npm ERR!       |                             ^~~~~~
9:56:33 AM: npm ERR!       |                             JobHandle
9:56:33 AM: npm ERR! ../src/common.cc:37:46: error: expected primary-expression before ‘>’ token
9:56:33 AM: npm ERR!    37 |   std::string AttrAsStr(v8::Handle<v8::Object> obj, std::string attr) {
9:56:33 AM: npm ERR!       |                                              ^
9:56:33 AM: npm ERR! ../src/common.cc:37:48: error: ‘obj’ was not declared in this scope
9:56:33 AM: npm ERR!    37 |   std::string AttrAsStr(v8::Handle<v8::Object> obj, std::string attr) {
9:56:33 AM: npm ERR!       |                                                ^~~
9:56:33 AM: npm ERR! ../src/common.cc:37:65: error: expected primary-expression before ‘attr’
9:56:33 AM: npm ERR!    37 |   std::string AttrAsStr(v8::Handle<v8::Object> obj, std::string attr) {
9:56:33 AM: npm ERR!       |                                                                 ^~~~
9:56:33 AM: npm ERR! ../src/common.cc:40:23: error: redefinition of ‘std::vector<double> sharp::AttrAsRgba’
9:56:33 AM: npm ERR!    40 |   std::vector<double> AttrAsRgba(v8::Handle<v8::Object> obj, std::string attr) {
9:56:33 AM: npm ERR!       |                       ^~~~~~~~~~
9:56:33 AM: npm ERR! In file included from ../src/common.cc:27:
9:56:33 AM: npm ERR! ../src/common.h:80:23: note: ‘std::vector<double> sharp::AttrAsRgba’ previously declared here
9:56:33 AM: npm ERR!    80 |   std::vector<double> AttrAsRgba(v8::Handle<v8::Object> obj, std::string attr);
9:56:33 AM: npm ERR!       |                       ^~~~~~~~~~
9:56:33 AM: npm ERR! ../src/common.cc:40:38: error: ‘Handle’ is not a member of ‘v8’; did you mean ‘JobHandle’?
9:56:33 AM: npm ERR!    40 |   std::vector<double> AttrAsRgba(v8::Handle<v8::Object> obj, std::string attr) {
9:56:33 AM: npm ERR!       |                                      ^~~~~~
9:56:33 AM: npm ERR!       |                                      JobHandle
9:56:33 AM: npm ERR! ../src/common.cc:40:55: error: expected primary-expression before ‘>’ token
9:56:33 AM: npm ERR!    40 |   std::vector<double> AttrAsRgba(v8::Handle<v8::Object> obj, std::string attr) {
9:56:33 AM: npm ERR!       |                                                       ^
9:56:33 AM: npm ERR! ../src/common.cc:40:57: error: ‘obj’ was not declared in this scope
9:56:33 AM: npm ERR!    40 |   std::vector<double> AttrAsRgba(v8::Handle<v8::Object> obj, std::string attr) {
9:56:33 AM: npm ERR!       |                                                         ^~~
9:56:33 AM: npm ERR! ../src/common.cc:40:74: error: expected primary-expression before ‘attr’
9:56:33 AM: npm ERR!    40 |   std::vector<double> AttrAsRgba(v8::Handle<v8::Object> obj, std::string attr) {
9:56:33 AM: npm ERR!       |                                                                          ^~~~
9:56:33 AM: npm ERR! ../src/common.cc:50:20: error: redefinition of ‘sharp::InputDescriptor* sharp::CreateInputDescriptor’
9:56:33 AM: npm ERR!    50 |   InputDescriptor* CreateInputDescriptor(
9:56:33 AM: npm ERR!       |                    ^~~~~~~~~~~~~~~~~~~~~
9:56:33 AM: npm ERR! In file included from ../src/common.cc:27:
9:56:33 AM: npm ERR! ../src/common.h:92:20: note: ‘sharp::InputDescriptor* sharp::CreateInputDescriptor’ previously defined here
9:56:33 AM: npm ERR!    92 |   InputDescriptor* CreateInputDescriptor(
9:56:33 AM: npm ERR!       |                    ^~~~~~~~~~~~~~~~~~~~~
9:56:33 AM: npm ERR! ../src/common.cc:51:9: error: ‘Handle’ is not a member of ‘v8’; did you mean ‘JobHandle’?
9:56:33 AM: npm ERR!    51 |     v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist
9:56:33 AM: npm ERR!       |         ^~~~~~
9:56:33 AM: npm ERR!       |         JobHandle
9:56:33 AM: npm ERR! ../src/common.cc:51:26: error: expected primary-expression before ‘>’ token
9:56:33 AM: npm ERR!    51 |     v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist
9:56:33 AM: npm ERR!       |                          ^
9:56:33 AM: npm ERR! ../src/common.cc:51:28: error: ‘input’ was not declared in this scope
9:56:33 AM: npm ERR!    51 |     v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist
9:56:33 AM: npm ERR!       |                            ^~~~~
9:56:33 AM: npm ERR! ../src/common.cc:51:70: error: expected primary-expression before ‘&’ token
9:56:33 AM: npm ERR!    51 |     v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist
9:56:33 AM: npm ERR!       |                                                                      ^
9:56:33 AM: npm ERR! ../src/common.cc:51:71: error: ‘buffersToPersist’ was not declared in this scope
9:56:33 AM: npm ERR!    51 |     v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist
9:56:33 AM: npm ERR!       |                                                                       ^~~~~~~~~~~~~~~~
9:56:33 AM: npm ERR! make: *** [sharp.target.mk:182: Release/obj.target/sharp/src/common.o] Error 1
9:56:33 AM: npm ERR! gyp ERR! build error
9:56:33 AM: npm ERR! gyp ERR! stack Error: `make` failed with exit code: 2
9:56:33 AM: npm ERR! gyp ERR! stack     at ChildProcess.onExit (/opt/buildhome/.nvm/versions/node/v16.16.0/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
9:56:33 AM: npm ERR! gyp ERR! stack     at ChildProcess.emit (node:events:527:28)
9:56:33 AM: npm ERR! gyp ERR! stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:291:12)
9:56:33 AM: npm ERR! gyp ERR! System Linux 5.4.181-99.354.amzn2.x86_64
9:56:33 AM: npm ERR! gyp ERR! command "/opt/buildhome/.nvm/versions/node/v16.16.0/bin/node" "/opt/buildhome/.nvm/versions/node/v16.16.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
9:56:33 AM: npm ERR! gyp ERR! cwd /opt/build/repo/node_modules/sharp
9:56:33 AM: npm ERR! gyp ERR! node -v v16.16.0
9:56:33 AM: npm ERR! gyp ERR! node-gyp -v v9.0.0
9:56:33 AM: npm ERR! gyp ERR! not ok
9:56:33 AM: npm ERR! A complete log of this run can be found in:
9:56:33 AM: npm ERR!     /opt/buildhome/.npm/_logs/2022-07-26T03_55_17_124Z-debug-0.log
9:56:33 AM: Error during NPM install
9:56:33 AM: Build was terminated: Build script returned non-zero exit code: 1
9:56:33 AM: Creating deploy upload records
9:56:33 AM: Failing build: Failed to build site
9:56:33 AM: Failed during stage 'building site': Build script returned non-zero exit code: 1 (https://ntl.fyi/exit-code-1)
9:56:34 AM: Finished processing build request in 1m26.599113088s

UX issue: index page and blog-post page appear identically if featuredImage is present

Thanks for this repository- I found it on Netlify.

These two screens appear identical, no? Notice the URL is different, because I clicked on the first post, which happens to have a featured image. My workaround is to remove the FeaturedImage component from the BlogPostTemplate component so the blog post appears different and reader will know they are reading a different page...

Screen Shot 2019-11-08 at 8 59 34 AM

Screen Shot 2019-11-08 at 8 59 39 AM

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.