Learnings with Toast
Netlify Build Error due to Caching
Current problem that exists within Toast right now (2020-12-05) is that the binary isn’t cached for us by Netlify. So when they try to go back and rebuild the site they fail because the binary isn’t stuffed away.
The error would look something like this:
$ yarn build:css && yarn incremental
$ postcss --config postcss-config src/styles/style.css -o public/style.css
$ toast incremental .
Error: spawnSync /opt/buildhome/.config/toast-nodejs/0.3.30/bin/toast ENOENT
at Object.spawnSync (internal/child_process.js:1066:20)
To solve for something like this temporarily is to do work in the postinstall to make sure that we always have the binary available. With the postinstall method we unfortunately also run the risk of losing traction from other package managers. This could also be solved through using a Netlify plugin but this wouldn’t be as ergonomic.
The more permanent solve requires the developers of Toast to find a way to make sure that the binary can be cached/available for Netlify.
Breadbox failing to build a file within a package
Snowpack is looking for packages it needs to build up but it does this by going through
all sorts of folders, and one folder we do not want it to look into is the public/
folder so if anything gets breadboxed for us, we don’t want to breadbox that thing as well.
⠼ snowpack installing... preact, preact/compat, preact/hooks, preact/hooks.js
✖ Cannot find module '/.../prince-toast/node_modules/preact/hooks.js'
To avoid this issue, you need to make sure to go to your package.json
and in the snowpack
configuration add in the public folder:
"snowpack": {
"knownEntrypoints": [
"preact",
"preact/hooks",
"@mdx-js/preact"
],
"exclude": [
+ "public/**/*",
"toast.js",
"data/fetch-mdx-post-files.js"
],
// Rest of the file ...
}