I’ve got a weird one. Exact same repo, exactly at the same commit — build works on one machine, but fails on the other related issue is a netlify function I have to integrate with sendgrid.
I get a peculiar error, consistently on the machine where I run netlify build. I can definitely see @sendgrid/mail in my node_modules.
In any case, on a separate machine (also MacOS), netlify build runs fine, no errors.
As it is, the site works fine when deployed.
Where do I even start?
(build.command completed in 38.4s)
Creating function for Netlify Emails integration
Functions bundling
────────────────────────────────────────────────────────────────
Packaging Functions from .netlify/functions-internal directory:
- emails/index.js
Packaging Functions from netlify/functions directory:
- sendgrid/index.ts
✘ [ERROR] Could not resolve "@sendgrid/mail"
netlify/functions/sendgrid/index.ts:1:29:
1 │ const sendgridMail = require("@sendgrid/mail");
╵ ~~~~~~~~~~~~~~~~
The Yarn Plug'n'Play manifest forbids importing "@sendgrid/mail" here because it's not listed as a
dependency of this package:
../../.pnp.cjs:11716:31:
11716 │ "packageDependencies": [\
╵ ~~
You can mark the path "@sendgrid/mail" as external to exclude it from the bundle, which will
remove this error and leave the unresolved path in the bundle. You can also surround this
"require" call with a try/catch block to handle this failure at run-time instead of bundle-time.
Dependencies installation error
────────────────────────────────────────────────────────────────
Error message
A Netlify Function is using "@sendgrid/mail" but that dependency has not been installed yet.
By default, dependencies inside a Netlify Function's "package.json" are not automatically installed.
There are several ways to fix this problem:
- Removing your Function's "package.json" and adding the dependencies to the project's top-level "package.json" instead. This is the fastest and safest solution.
- Running "npm install" or "yarn" inside your Netlify Function in your build command.
- Adding the following plugin to your "netlify.toml":
[[plugins]]
package = "@netlify/plugin-functions-install-core"
Build failed with 1 error:
netlify/functions/sendgrid/index.ts:1:29: ERROR: Could not resolve "@sendgrid/mail"
Resolved config
build:
command: npm run build
commandOrigin: ui
publish: /Users/julian/Code/nfl-backoffice/dist
publishOrigin: ui
functions:
emails:
included_files:
- ./emails/**
functionsDirectory: /Users/julian/Code/nfl-backoffice/netlify/functions
headers:
- for: /*
values:
Access-Control-Allow-Origin: '*'
headersOrigin: config
plugins:
- inputs: {}
origin: config
package: '@netlify/plugin-emails'