Multisite build error: #<MiniRacer::RuntimeError: Error: Parser rule not found: fragments_join>

Hmm interesting, let’s see:

`yarn why`
❯ yarn why markdown-it
yarn why v1.22.10
[1/4] 🤔  Why do we have the module "markdown-it"...?
[2/4] 🚚  Initialising dependency graph...
[3/4] 🔍  Finding dependency...
[4/4] 🚡  Calculating file sizes...
=> Found "markdown-it@13.0.1"
info Reasons this module exists
   - "_project_#discourse" depends on it
   - Hoisted from "_project_#discourse#markdown-it"
info Disk size without dependencies: "732KB"
info Disk size with unique dependencies: "1.31MB"
info Disk size with transitive dependencies: "1.31MB"
info Number of shared dependencies: 5
=> Found "ember-cli#markdown-it@12.0.4"
info This module exists because "_project_#discourse#ember-cli" depends on it.
info Disk size without dependencies: "724KB"
info Disk size with unique dependencies: "1.3MB"
info Disk size with transitive dependencies: "1.3MB"
info Number of shared dependencies: 5
=> Found "markdown-it-terminal#markdown-it@8.4.2"
info This module exists because "_project_#discourse#ember-cli#markdown-it-terminal" depends on it.
info Disk size without dependencies: "708KB"
info Disk size with unique dependencies: "1.29MB"
info Disk size with transitive dependencies: "1.29MB"
info Number of shared dependencies: 5
✨  Done in 0.39s.

So discourse’s package.json is requesting 13.0.1, ember-cli’s own package.json requests 12.0.4, and markdown-it-terminal requires 8.4.2.

Anyway, in theory this should all be invisible. Discourse itself is asking for 13.0.1, and so the version in app/assets/javascripts/node_modules/markdown-it should be 13.0.1. The other older versions will be made available to their respective parents.

Given that we’re not seeing this internally, and this is only happening for people with non-standard installs, I suspect we’re missing a yarn install somewhere in the two-container setup templates, and so the database container is booting up with the cached version of markdown-it from the base image :eyes:

1 Like