Newbie 3.10* build fail with yarn

Describe Your Question

I’m following the getting-started page to build OHIF Viewer, but failed during yarn install step.

I clone from release/3.10*, installed yarn and nodejs. Already have Git

Run:

yarn config set workspaces-experimental true

which returns

Usage Error: Couldn't find a configuration settings named "workspaces-experimental"
$ yarn config set [--json] [-H,--home] <name> <value>

Did some research and found this is not needed for yarn 2.x or higher. I’m running yarn 4.9.1 so I skip this part. I think it will be helpful to update the document. If confirmed this is the case, I’ll file a issue on Github.

I then run

yarn install

which failed with lots of requirements can’t be satisfied. See log at the end for detail.
I think I’m missing something obviously. I’d appreciate if someone can help me out.
Thank you.

What steps can we follow to reproduce the bug?

  1. git clone release/3.10
  2. install yarn 4.9.1
  3. run “yarn install”

Here’s the build fail log

(ohif) jerry@Study-Room-iMac OHIFViewers % yarn install
➤ YN0000: · Yarn 4.9.1-git.20250411.hash-1908ee79f
➤ YN0000: ┌ Project validation
➤ YN0057: │ ohif-monorepo-root: 'nohoist' is deprecated, please use 'installConfig.hoistingLimits' instead
➤ YN0000: └ Completed
➤ YN0000: ┌ Resolution step
➤ YN0000: └ Completed in 0s 597ms
➤ YN0000: ┌ Post-resolution validation
➤ YN0060: │ @kitware/vtk.js is listed by your project with version 32.12.0 (p02df8), which doesn't satisfy what @cornerstonejs/labelmap-interpolation and other dependencies request (32.12.1).
➤ YN0060: │ @kitware/vtk.js is listed by your project with version 32.12.0 (p5b4ac), which doesn't satisfy what @cornerstonejs/labelmap-interpolation and other dependencies request (32.12.1).
➤ YN0060: │ @typescript-eslint/eslint-plugin is listed by your project with version 6.21.0 (pdfb55), which doesn't satisfy what eslint-config-react-app requests (^4.0.0).
➤ YN0060: │ @typescript-eslint/parser is listed by your project with version 6.21.0 (pec89d), which doesn't satisfy what eslint-config-react-app and other dependencies request (but they have non-overlapping ranges!).
➤ YN0060: │ babel-eslint is listed by your project with version 9.0.0 (pca75a), which doesn't satisfy what eslint-config-react-app requests (^10.0.0).
➤ YN0060: │ cornerstone-math is listed by your project with version 0.1.10 (p69207), which doesn't satisfy what @ohif/core requests (0.1.9).
➤ YN0060: │ eslint is listed by your project with version 8.57.1 (p44d9c), which doesn't satisfy what eslint-config-react-app and other dependencies request (but they have non-overlapping ranges!).
➤ YN0060: │ eslint is listed by your project with version 8.57.1 (p823bc), which doesn't satisfy what eslint-loader and other dependencies request (>=4.12.1 <7.0.0).
➤ YN0060: │ eslint-plugin-flowtype is listed by your project with version 7.0.0 (pcf017), which doesn't satisfy what eslint-config-react-app requests (^5.2.0).
➤ YN0060: │ i18next is listed by your project with version 17.3.1 (p7f979), which doesn't satisfy what react-i18next and other dependencies request (but they have non-overlapping ranges!).
➤ YN0060: │ i18next is listed by your project with version 17.3.1 (pcfa98), which doesn't satisfy what react-i18next requests (>=19.0.0).
➤ YN0060: │ react is listed by your project with version 18.3.1 (p30898), which doesn't satisfy what react-dates and other dependencies request (but they have non-overlapping ranges!).
➤ YN0060: │ react is listed by your project with version 18.3.1 (pcc2a7), which doesn't satisfy what react-dates (via @ohif/ui) and other dependencies request (but they have non-overlapping ranges!).
➤ YN0060: │ react is listed by your project with version 18.3.1 (pda751), which doesn't satisfy what react-dates and other dependencies request (but they have non-overlapping ranges!).
➤ YN0060: │ react-dom is listed by your project with version 18.3.1 (p3d5ee), which doesn't satisfy what react-dates and other dependencies request (but they have non-overlapping ranges!).
➤ YN0060: │ react-dom is listed by your project with version 18.3.1 (pd64f8), which doesn't satisfy what react-dates (via @ohif/ui) and other dependencies request (but they have non-overlapping ranges!).
➤ YN0060: │ react-dom is listed by your project with version 18.3.1 (pff45d), which doesn't satisfy what react-dates and other dependencies request (but they have non-overlapping ranges!).
➤ YN0060: │ react-i18next is listed by your project with version 12.3.1 (p17677), which doesn't satisfy what @ohif/extension-cornerstone-dicom-rt and other dependencies request (but they have non-overlapping ranges!).
➤ YN0060: │ webpack is listed by your project with version 5.94.0 (p3c470), which doesn't satisfy what optimize-css-assets-webpack-plugin and other dependencies request (but they have non-overlapping ranges!).
➤ YN0060: │ webpack is listed by your project with version 5.94.0 (p67284), which doesn't satisfy what eslint-loader and other dependencies request (but they have non-overlapping ranges!).
➤ YN0002: │ @externals/devDependencies@workspace:addOns/externals/devDependencies doesn't provide @babel/core (pf7a7a), requested by babel-loader.
➤ YN0002: │ @externals/devDependencies@workspace:addOns/externals/devDependencies doesn't provide @babel/preset-env (pf723c), requested by @kitware/vtk.js.
➤ YN0002: │ @externals/devDependencies@workspace:addOns/externals/devDependencies doesn't provide wslink (p7ba40), requested by @kitware/vtk.js.
➤ YN0002: │ @ohif/app@workspace:platform/app doesn't provide @babel/core (p35877), requested by @babel/plugin-proposal-private-methods.
➤ YN0002: │ @ohif/app@workspace:platform/app doesn't provide @cornerstonejs/core (p71212), requested by @cornerstonejs/dicom-image-loader and other dependencies.
➤ YN0002: │ @ohif/app@workspace:platform/app doesn't provide @ohif/extension-measurement-tracking (p09a6e), requested by @ohif/extension-cornerstone-dicom-sr and other dependencies.
➤ YN0002: │ @ohif/app@workspace:platform/app doesn't provide dicomweb-client (p40476), requested by @ohif/extension-default.
➤ YN0002: │ @ohif/app@workspace:platform/app doesn't provide postcss (p348b0), requested by tailwindcss.
➤ YN0002: │ @ohif/app@workspace:platform/app doesn't provide react-window (p85a52), requested by @ohif/extension-default.
➤ YN0002: │ @ohif/app@workspace:platform/app doesn't provide typescript (pada81), requested by react-shepherd.
➤ YN0002: │ @ohif/app@workspace:platform/app doesn't provide webpack (p89821), requested by @ohif/extension-default and other dependencies.
➤ YN0002: │ @ohif/app@workspace:platform/app doesn't provide webpack-merge (p0818a), requested by @ohif/extension-default.
➤ YN0002: │ @ohif/core@workspace:platform/core [6ab6a] doesn't provide react (p283ab), requested by react-shepherd.
➤ YN0002: │ @ohif/core@workspace:platform/core [6ab6a] doesn't provide react-dom (pb8696), requested by react-shepherd.
➤ YN0002: │ @ohif/core@workspace:platform/core [6ab6a] doesn't provide typescript (p1a046), requested by react-shepherd.
➤ YN0002: │ @ohif/core@workspace:platform/core doesn't provide react (p74b3b), requested by react-shepherd.
➤ YN0002: │ @ohif/core@workspace:platform/core doesn't provide react-dom (pdb251), requested by react-shepherd.
➤ YN0002: │ @ohif/core@workspace:platform/core doesn't provide typescript (pf3775), requested by react-shepherd.
➤ YN0002: │ @ohif/extension-cornerstone-dicom-pmap@workspace:extensions/cornerstone-dicom-pmap doesn't provide @babel/preset-env (p69dc7), requested by @kitware/vtk.js.
➤ YN0002: │ @ohif/extension-cornerstone-dicom-pmap@workspace:extensions/cornerstone-dicom-pmap doesn't provide @cornerstonejs/tools (p3db1b), requested by @cornerstonejs/adapters.
➤ YN0002: │ @ohif/extension-cornerstone-dicom-pmap@workspace:extensions/cornerstone-dicom-pmap doesn't provide autoprefixer (p4f802), requested by @kitware/vtk.js.
➤ YN0002: │ @ohif/extension-cornerstone-dicom-pmap@workspace:extensions/cornerstone-dicom-pmap doesn't provide react (p3d36f), requested by react-color.
➤ YN0002: │ @ohif/extension-cornerstone-dicom-pmap@workspace:extensions/cornerstone-dicom-pmap doesn't provide wslink (p0b6e7), requested by @kitware/vtk.js.
➤ YN0002: │ @ohif/extension-cornerstone-dicom-rt@workspace:extensions/cornerstone-dicom-rt doesn't provide react (p71ac0), requested by react-color.
➤ YN0002: │ @ohif/extension-cornerstone-dicom-seg@workspace:extensions/cornerstone-dicom-seg [6ab6a] doesn't provide @babel/preset-env (pddab0), requested by @kitware/vtk.js.
➤ YN0002: │ @ohif/extension-cornerstone-dicom-seg@workspace:extensions/cornerstone-dicom-seg [6ab6a] doesn't provide @cornerstonejs/tools (pce2a4), requested by @cornerstonejs/adapters.
➤ YN0002: │ @ohif/extension-cornerstone-dicom-seg@workspace:extensions/cornerstone-dicom-seg [6ab6a] doesn't provide autoprefixer (pccc92), requested by @kitware/vtk.js.
➤ YN0002: │ @ohif/extension-cornerstone-dicom-seg@workspace:extensions/cornerstone-dicom-seg [6ab6a] doesn't provide wslink (pbb1ea), requested by @kitware/vtk.js.
➤ YN0002: │ @ohif/extension-cornerstone-dicom-seg@workspace:extensions/cornerstone-dicom-seg doesn't provide @babel/preset-env (pddb89), requested by @kitware/vtk.js.
➤ YN0002: │ @ohif/extension-cornerstone-dicom-seg@workspace:extensions/cornerstone-dicom-seg doesn't provide @cornerstonejs/tools (p887ef), requested by @cornerstonejs/adapters.
➤ YN0002: │ @ohif/extension-cornerstone-dicom-seg@workspace:extensions/cornerstone-dicom-seg doesn't provide autoprefixer (pdbb64), requested by @kitware/vtk.js.
➤ YN0002: │ @ohif/extension-cornerstone-dicom-seg@workspace:extensions/cornerstone-dicom-seg doesn't provide react (p0667e), requested by react-color.
➤ YN0002: │ @ohif/extension-cornerstone-dicom-seg@workspace:extensions/cornerstone-dicom-seg doesn't provide wslink (ped107), requested by @kitware/vtk.js.
➤ YN0002: │ @ohif/extension-cornerstone-dicom-sr@workspace:extensions/cornerstone-dicom-sr [6ab6a] doesn't provide @kitware/vtk.js (pc7d2f), requested by @cornerstonejs/tools.
➤ YN0002: │ @ohif/extension-cornerstone-dicom-sr@workspace:extensions/cornerstone-dicom-sr [6ab6a] doesn't provide @types/d3-array (p09b2a), requested by @cornerstonejs/tools.
➤ YN0002: │ @ohif/extension-cornerstone-dicom-sr@workspace:extensions/cornerstone-dicom-sr [6ab6a] doesn't provide @types/d3-interpolate (p20433), requested by @cornerstonejs/tools.
➤ YN0002: │ @ohif/extension-cornerstone-dicom-sr@workspace:extensions/cornerstone-dicom-sr [6ab6a] doesn't provide d3-array (p250f6), requested by @cornerstonejs/tools.
➤ YN0002: │ @ohif/extension-cornerstone-dicom-sr@workspace:extensions/cornerstone-dicom-sr [6ab6a] doesn't provide d3-interpolate (pfafd3), requested by @cornerstonejs/tools.
➤ YN0002: │ @ohif/extension-cornerstone-dicom-sr@workspace:extensions/cornerstone-dicom-sr [6ab6a] doesn't provide gl-matrix (pe3d79), requested by @cornerstonejs/tools.
➤ YN0002: │ @ohif/extension-cornerstone-dicom-sr@workspace:extensions/cornerstone-dicom-sr doesn't provide @kitware/vtk.js (p15257), requested by @cornerstonejs/tools.
➤ YN0002: │ @ohif/extension-cornerstone-dicom-sr@workspace:extensions/cornerstone-dicom-sr doesn't provide @types/d3-array (p61f6b), requested by @cornerstonejs/tools.
➤ YN0002: │ @ohif/extension-cornerstone-dicom-sr@workspace:extensions/cornerstone-dicom-sr doesn't provide @types/d3-interpolate (pd1bfb), requested by @cornerstonejs/tools.
➤ YN0002: │ @ohif/extension-cornerstone-dicom-sr@workspace:extensions/cornerstone-dicom-sr doesn't provide d3-array (p46e30), requested by @cornerstonejs/tools.
➤ YN0002: │ @ohif/extension-cornerstone-dicom-sr@workspace:extensions/cornerstone-dicom-sr doesn't provide d3-interpolate (p641a1), requested by @cornerstonejs/tools.
➤ YN0002: │ @ohif/extension-cornerstone-dicom-sr@workspace:extensions/cornerstone-dicom-sr doesn't provide gl-matrix (pb9329), requested by @cornerstonejs/tools.
➤ YN0002: │ @ohif/extension-cornerstone-dynamic-volume@workspace:extensions/cornerstone-dynamic-volume doesn't provide @kitware/vtk.js (p1e158), requested by @cornerstonejs/tools.
➤ YN0002: │ @ohif/extension-cornerstone-dynamic-volume@workspace:extensions/cornerstone-dynamic-volume doesn't provide @types/d3-array (pb5ccb), requested by @cornerstonejs/tools.
➤ YN0002: │ @ohif/extension-cornerstone-dynamic-volume@workspace:extensions/cornerstone-dynamic-volume doesn't provide @types/d3-interpolate (pc572c), requested by @cornerstonejs/tools.
➤ YN0002: │ @ohif/extension-cornerstone-dynamic-volume@workspace:extensions/cornerstone-dynamic-volume doesn't provide d3-array (p96a38), requested by @cornerstonejs/tools.
➤ YN0002: │ @ohif/extension-cornerstone-dynamic-volume@workspace:extensions/cornerstone-dynamic-volume doesn't provide d3-interpolate (pa8ec0), requested by @cornerstonejs/tools.
➤ YN0002: │ @ohif/extension-cornerstone-dynamic-volume@workspace:extensions/cornerstone-dynamic-volume doesn't provide gl-matrix (p1a2b3), requested by @cornerstonejs/tools.
➤ YN0002: │ @ohif/extension-cornerstone@workspace:extensions/cornerstone [6ab6a] doesn't provide @babel/preset-env (p92810), requested by @kitware/vtk.js.
➤ YN0002: │ @ohif/extension-cornerstone@workspace:extensions/cornerstone [6ab6a] doesn't provide @types/d3-array (p8a896), requested by @cornerstonejs/tools.
➤ YN0002: │ @ohif/extension-cornerstone@workspace:extensions/cornerstone [6ab6a] doesn't provide @types/d3-interpolate (p7443a), requested by @cornerstonejs/tools.
➤ YN0002: │ @ohif/extension-cornerstone@workspace:extensions/cornerstone [6ab6a] doesn't provide autoprefixer (pf090e), requested by @kitware/vtk.js.
➤ YN0002: │ @ohif/extension-cornerstone@workspace:extensions/cornerstone [6ab6a] doesn't provide d3-array (p7c648), requested by @cornerstonejs/tools.
➤ YN0002: │ @ohif/extension-cornerstone@workspace:extensions/cornerstone [6ab6a] doesn't provide d3-interpolate (p4d9cf), requested by @cornerstonejs/tools.
➤ YN0002: │ @ohif/extension-cornerstone@workspace:extensions/cornerstone [6ab6a] doesn't provide gl-matrix (pc017b), requested by @cornerstonejs/tools.
➤ YN0002: │ @ohif/extension-cornerstone@workspace:extensions/cornerstone [6ab6a] doesn't provide webpack (p140da), requested by worker-loader.
➤ YN0002: │ @ohif/extension-cornerstone@workspace:extensions/cornerstone [6ab6a] doesn't provide wslink (p4a9c6), requested by @kitware/vtk.js.
➤ YN0002: │ @ohif/extension-cornerstone@workspace:extensions/cornerstone doesn't provide @babel/preset-env (pefcb9), requested by @kitware/vtk.js.
➤ YN0002: │ @ohif/extension-cornerstone@workspace:extensions/cornerstone doesn't provide @types/d3-array (p68764), requested by @cornerstonejs/tools.
➤ YN0002: │ @ohif/extension-cornerstone@workspace:extensions/cornerstone doesn't provide @types/d3-interpolate (pdb5dc), requested by @cornerstonejs/tools.
➤ YN0002: │ @ohif/extension-cornerstone@workspace:extensions/cornerstone doesn't provide autoprefixer (p13fca), requested by @kitware/vtk.js.
➤ YN0002: │ @ohif/extension-cornerstone@workspace:extensions/cornerstone doesn't provide d3-array (p6b31a), requested by @cornerstonejs/tools.
➤ YN0002: │ @ohif/extension-cornerstone@workspace:extensions/cornerstone doesn't provide d3-interpolate (pb4cb1), requested by @cornerstonejs/tools.
➤ YN0002: │ @ohif/extension-cornerstone@workspace:extensions/cornerstone doesn't provide gl-matrix (p4f314), requested by @cornerstonejs/tools.
➤ YN0002: │ @ohif/extension-cornerstone@workspace:extensions/cornerstone doesn't provide webpack (p693ed), requested by worker-loader.
➤ YN0002: │ @ohif/extension-cornerstone@workspace:extensions/cornerstone doesn't provide wslink (pad763), requested by @kitware/vtk.js.
➤ YN0002: │ @ohif/extension-measurement-tracking@workspace:extensions/measurement-tracking doesn't provide react (pb5c16), requested by @xstate/react.
➤ YN0002: │ @ohif/ui-next@workspace:platform/ui-next doesn't provide @babel/core (p3ef93), requested by @babel/plugin-proposal-private-property-in-object.
➤ YN0002: │ @ohif/ui-next@workspace:platform/ui-next doesn't provide postcss (pb0c7d), requested by tailwindcss.
➤ YN0002: │ @ohif/ui-next@workspace:platform/ui-next doesn't provide react-dom (pc311b), requested by @radix-ui/react-accordion and other dependencies.
➤ YN0002: │ @ohif/ui-next@workspace:platform/ui-next doesn't provide typescript (pe3171), requested by react-shepherd.
➤ YN0002: │ @ohif/ui@workspace:platform/ui [6ab6a] doesn't provide @babel/runtime (pa3061), requested by react-dates.
➤ YN0002: │ @ohif/ui@workspace:platform/ui [6ab6a] doesn't provide typescript (p303e6), requested by @storybook/react and other dependencies.
➤ YN0002: │ @ohif/ui@workspace:platform/ui [cdead] doesn't provide @babel/runtime (p0bc47), requested by react-dates.
➤ YN0002: │ @ohif/ui@workspace:platform/ui [cdead] doesn't provide typescript (p9fdc4), requested by @storybook/react and other dependencies.
➤ YN0002: │ @ohif/ui@workspace:platform/ui doesn't provide @babel/runtime (p88559), requested by react-dates.
➤ YN0002: │ @ohif/ui@workspace:platform/ui doesn't provide typescript (p1e9e3), requested by @storybook/react-webpack5 and other dependencies.
➤ YN0086: │ Some peer dependencies are incorrectly met by your project; run yarn explain peer-requirements <hash> for details, where <hash> is the six-letter p-prefixed code.
➤ YN0086: │ Some peer dependencies are incorrectly met by dependencies; run yarn explain peer-requirements for details.
➤ YN0000: └ Completed
➤ YN0000: ┌ Fetch step
➤ YN0000: └ Completed in 2s 356ms
➤ YN0000: ┌ Link step
➤ YN0007: │ @kitware/vtk.js@npm:32.12.0 [920ed] must be built because it never has been before or the last one failed
➤ YN0009: │ @kitware/vtk.js@npm:32.12.0 [920ed] couldn't be built successfully (exit code 127, logs can be found here: /private/var/folders/dr/gb280dbx3mv102dtxs8hpl4h0000gp/T/xfs-5b21ab84/build.log)
➤ YN0000: └ Completed in 1s 493ms
➤ YN0000: · Failed with errors in 4s 650ms

I tried to clear cache but the build still fails

yarn cache clean
rm -rf node_modules
yarn install

changing line 121 resolution in package.json from

    "body-parser": "1.20.3",

to

    "body-parser": "1.20.3",
    "@kitware/vtk.js": "32.12.1"

That solved kitware/vts.js dependency issue, and “yarn install” completed with many “doesn’t provide …” warning like:

@ohif/ui@workspace:platform/ui doesn't provide @babel/runtime (p88559), requested by react-dates.
➤ YN0002: │ @ohif/ui@workspace:platform/ui doesn't provide typescript (p1e9e3), requested by @storybook/react-webpack5 and other dependencies.
➤ YN0086: │ 

However,

yarn run dev

fails with following error:

command not found: lerna

I’m looking into it now

Looks like though lerna is in the node_modules/.bin, but yarn is not able to recognize it.

Adding the following line to the devDependencies section in the root package.json fixed the problem.

    "lerna": "^7.4.2",

I’m now able to launch the app and bring up the web page, but the app failed with following error on the web page:

ERROR in ../../node_modules/@storybook/builder-webpack5/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[8].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[17].use[0]!../ui-next/src/components/Onboarding/Onboarding.css 
Module build failed (from ./node_modules/postcss-loader/dist/cjs.js):

SyntaxError

(2:3) /Users/jerry/workspace/OHIFViewers/platform/ui-next/src/components/Onboarding/Onboarding.css The `!bg-popover` class does not exist. If `!bg-popover` is a custom class, make sure it is defined within a `@layer` directive.

  1 | .shepherd-header {
> 2 |   @apply !bg-popover !w-[100%] !p-0;

I’m surprised I encounter so many issues in the release branch. Am I cloning the wrong branch?

I created a new workspace clone from v.3.9.2 which I know the corresponding docker image works.
I had problem building it first, but after change yarn version from v4 to v1, I’m able to build and run the app now.
The viewer show the list of cases, but show error when trying to go to basic viewer.

I’ll close this topic for now and dig deeper trying to get v3.9.2 working.

Thanks.

Looks like OHIF Viewer must use yarn v1, and not newer version.
It will be great if this can be stated in getting-started page.
Maybe it’s documented somewhere and I miss it.

Thank you all for this great project.
I’ll learn more and hope to be able to contribute as I become more familiar with the codebase.

I’m able to trace the root problem.
The root cause is that in my Conda environment, I use Conda to install Yarn instead of npm as the document specifies.
Conda installs Yarn 4.x, instead of the 1.x npm installs. Looks like they maybe different product.

Once I create a new environment, and use npm to install yarn, everything works smoothly.

Thank you all