Help needed with add-on development set up. `make install` fails with missing parcel watcher on Mac
Describe the bug
make install fails.
To Reproduce
- Create add-on with
pipx run cookieplone - Go to add-on directory.
- Run
make install - See error
Software:
- OS: [Mac with M1]
- Volto Version [current 18 alpha]
What I tried so far
- Add missing parcel watcher to optionalDependencies or devDependencies.
Please note '✕ missing peer @parcel/core@^2.12.0' in log:
% make install
Install
Not installing pre-commit
Using ./
Found core at core
✓ update core to tag 18.0.0-alpha.46
Scope: all 18 workspace projects
core/packages/client | WARN deprecated [email protected]
core/packages/scripts | WARN deprecated [email protected]
core/packages/volto | WARN deprecated @babel/[email protected]
core/packages/volto | WARN deprecated [email protected]
core/packages/volto | WARN deprecated [email protected]
WARN 58 deprecated subdependencies found: @babel/[email protected], @babel/[email protected], @babel/[email protected], @babel/[email protected], @babel/[email protected], @babel/[email protected], @formatjs/[email protected], @formatjs/[email protected], @humanwhocodes/[email protected], @humanwhocodes/[email protected], @npmcli/[email protected], @npmcli/[email protected], @types/[email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected]
Packages: +3 -5
+++-----
Progress: resolved 3163, reused 3055, downloaded 0, added 3, done
WARN Issues with peer dependencies found
core/packages/blocks
└─┬ parcel 2.12.0
└─┬ @parcel/config-default 2.12.0
└─┬ @parcel/optimizer-htmlnano 2.12.0
└─┬ htmlnano 2.1.1
└── ✕ unmet peer svgo@^3.0.2: found 2.8.0 in @parcel/optimizer-htmlnano
core/packages/client
├─┬ @parcel/config-default 2.12.0
│ └─┬ @parcel/optimizer-htmlnano 2.12.0
│ └─┬ htmlnano 2.1.1
│ └── ✕ unmet peer svgo@^3.0.2: found 2.8.0 in @parcel/optimizer-htmlnano
└─┬ @vitest/coverage-v8 1.6.0
└── ✕ unmet peer [email protected]: found 2.1.3
core/packages/components
├─┬ @parcel/config-default 2.12.0
│ └─┬ @parcel/optimizer-htmlnano 2.12.0
│ └─┬ htmlnano 2.1.1
│ └── ✕ unmet peer svgo@^3.0.2: found 2.8.0 in @parcel/optimizer-htmlnano
└─┬ @vitest/coverage-v8 1.6.0
└── ✕ unmet peer [email protected]: found 2.1.3
core/packages/coresandbox
└─┬ react-intl 3.12.1
└── ✕ unmet peer react@^16.3.0: found 18.2.0
core/packages/helpers
├─┬ @parcel/packager-ts 2.12.0
│ └─┬ @parcel/plugin 2.12.0
│ └─┬ @parcel/types 2.12.0
│ └─┬ @parcel/cache 2.12.0
│ ├── ✕ missing peer @parcel/core@^2.12.0
│ └─┬ @parcel/fs 2.12.0
│ ├── ✕ missing peer @parcel/core@^2.12.0
│ └─┬ @parcel/types 2.12.0
│ └─┬ @parcel/package-manager 2.12.0
│ ├── ✕ missing peer @parcel/core@^2.12.0
│ └─┬ @parcel/fs 2.12.0
│ ├── ✕ missing peer @parcel/core@^2.12.0
│ └─┬ @parcel/workers 2.12.0
│ └── ✕ missing peer @parcel/core@^2.12.0
└─┬ parcel 2.12.0
└─┬ @parcel/config-default 2.12.0
└─┬ @parcel/optimizer-htmlnano 2.12.0
└─┬ htmlnano 2.1.1
└── ✕ unmet peer svgo@^3.0.2: found 2.8.0 in @parcel/optimizer-htmlnano
Peer dependencies that should be installed:
@parcel/core@">=2.12.0 <3.0.0-0"
core/packages/providers
└─┬ @parcel/config-default 2.12.0
└─┬ @parcel/optimizer-htmlnano 2.12.0
└─┬ htmlnano 2.1.1
└── ✕ unmet peer svgo@^3.0.2: found 2.8.0 in @parcel/optimizer-htmlnano
core/packages/registry
├─┬ @parcel/packager-ts 2.12.0
│ └─┬ @parcel/plugin 2.12.0
│ └─┬ @parcel/types 2.12.0
│ └─┬ @parcel/cache 2.12.0
│ ├── ✕ missing peer @parcel/core@^2.12.0
│ └─┬ @parcel/fs 2.12.0
│ ├── ✕ missing peer @parcel/core@^2.12.0
│ └─┬ @parcel/types 2.12.0
│ └─┬ @parcel/package-manager 2.12.0
│ ├── ✕ missing peer @parcel/core@^2.12.0
│ └─┬ @parcel/fs 2.12.0
│ ├── ✕ missing peer @parcel/core@^2.12.0
│ └─┬ @parcel/workers 2.12.0
│ └── ✕ missing peer @parcel/core@^2.12.0
└─┬ parcel 2.12.0
└─┬ @parcel/config-default 2.12.0
└─┬ @parcel/optimizer-htmlnano 2.12.0
└─┬ htmlnano 2.1.1
└── ✕ unmet peer svgo@^3.0.2: found 2.8.0 in @parcel/optimizer-htmlnano
Peer dependencies that should be installed:
@parcel/core@">=2.12.0 <3.0.0-0"
core/packages/slots
├─┬ @parcel/packager-ts 2.12.0
│ └─┬ @parcel/plugin 2.12.0
│ └─┬ @parcel/types 2.12.0
│ └─┬ @parcel/cache 2.12.0
│ ├── ✕ missing peer @parcel/core@^2.12.0
│ └─┬ @parcel/fs 2.12.0
│ ├── ✕ missing peer @parcel/core@^2.12.0
│ └─┬ @parcel/types 2.12.0
│ └─┬ @parcel/package-manager 2.12.0
│ ├── ✕ missing peer @parcel/core@^2.12.0
│ └─┬ @parcel/fs 2.12.0
│ ├── ✕ missing peer @parcel/core@^2.12.0
│ └─┬ @parcel/workers 2.12.0
│ └── ✕ missing peer @parcel/core@^2.12.0
└─┬ parcel 2.12.0
└─┬ @parcel/config-default 2.12.0
└─┬ @parcel/optimizer-htmlnano 2.12.0
└─┬ htmlnano 2.1.1
└── ✕ unmet peer svgo@^3.0.2: found 2.8.0 in @parcel/optimizer-htmlnano
Peer dependencies that should be installed:
@parcel/core@">=2.12.0 <3.0.0-0"
core/packages/types
└─┬ react-intl 3.12.1
└── ✕ unmet peer react@^16.3.0: found 18.2.0
core/packages/volto
├─┬ razzle 4.2.18
│ ├── ✕ unmet peer mini-css-extract-plugin@">=0.9.0 <1.0.0": found 2.7.2
│ ├─┬ file-loader 4.3.0
│ │ └── ✕ unmet peer webpack@^4.0.0: found 5.90.1
│ ├─┬ url-loader 2.3.0
│ │ └── ✕ unmet peer webpack@^4.0.0: found 5.90.1
│ ├─┬ webpack-manifest-plugin 3.2.0
│ │ └── ✕ unmet peer webpack@^4.44.2: found 5.90.1
│ └─┬ @pmmmwh/react-refresh-webpack-plugin 0.4.3
│ └── ✕ unmet peer [email protected]: found 4.11.1
├─┬ razzle-plugin-scss 4.2.18
│ └── ✕ unmet peer mini-css-extract-plugin@">=0.9.0 <1.0.0": found 2.7.2
├─┬ react-intl 3.12.1
│ └── ✕ unmet peer react@^16.3.0: found 18.2.0
├─┬ react-router 5.2.0
│ └─┬ mini-create-react-context 0.4.1
│ └── ✕ unmet peer react@"^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0": found 18.2.0
├─┬ react-select 4.3.1
│ ├── ✕ unmet peer react@"^16.8.0 || ^17.0.0": found 18.2.0
│ ├── ✕ unmet peer react-dom@"^16.8.0 || ^17.0.0": found 18.2.0
│ └─┬ react-input-autosize 3.0.0
│ └── ✕ unmet peer react@"^16.3.0 || ^17.0.0": found 18.2.0
├─┬ react-with-styles 4.2.0
│ └─┬ airbnb-prop-types 2.16.0
│ └── ✕ unmet peer react@"^0.14 || ^15.0.0 || ^16.0.0-alpha": found 18.2.0
├─┬ react-with-direction 1.4.0
│ ├── ✕ unmet peer react@"^0.14 || ^15 || ^16": found 18.2.0
│ └── ✕ unmet peer react-dom@"^0.14 || ^15 || ^16": found 18.2.0
├─┬ @testing-library/react-hooks 8.0.1
│ ├── ✕ unmet peer react@"^16.9.0 || ^17.0.0": found 18.2.0
│ ├── ✕ unmet peer react-dom@"^16.9.0 || ^17.0.0": found 18.2.0
│ ├── ✕ unmet peer @types/react@"^16.9.0 || ^17.0.0": found 18.2.27
│ └── ✕ unmet peer react-test-renderer@"^16.9.0 || ^17.0.0": found 18.2.0
├─┬ connected-react-router 6.8.0
│ ├── ✕ unmet peer react@^16.4.0: found 18.2.0
│ └── ✕ unmet peer react-redux@"^6.0.0 || ^7.1.0": found 8.1.2
├─┬ react-beautiful-dnd 13.0.0
│ ├── ✕ unmet peer react@^16.8.5: found 18.2.0
│ └── ✕ unmet peer react-dom@^16.8.5: found 18.2.0
├─┬ react-dates 21.5.1
│ ├── ✕ unmet peer react@"^0.14 || ^15.5.4 || ^16.1.1": found 18.2.0
│ └── ✕ unmet peer react-dom@"^0.14 || ^15.5.4 || ^16.1.1": found 18.2.0
├─┬ react-detect-click-outside 1.1.1
│ ├── ✕ unmet peer react@"^16.8.0 || ^17": found 18.2.0
│ └── ✕ unmet peer react-dom@"^16.8.0 || ^17": found 18.2.0
├─┬ react-dnd 5.0.0
│ └─┬ recompose 0.27.1
│ └── ✕ unmet peer react@"^0.14.0 || ^15.0.0 || ^16.0.0": found 18.2.0
├─┬ react-image-gallery 1.2.7
│ └── ✕ unmet peer react@"^16.0.0 || ^17.0.0": found 18.2.0
├─┬ react-medium-image-zoom 3.0.15
│ ├── ✕ unmet peer react@^16.0.0: found 18.2.0
│ └── ✕ unmet peer react-dom@^16.0.0: found 18.2.0
├─┬ react-select-async-paginate 0.5.3
│ ├── ✕ unmet peer react@"^16.14.0 || ^17.0.0": found 18.2.0
│ └─┬ react-is-mounted-hook 1.1.2
│ ├── ✕ unmet peer react@"^16.8.6 || ^17": found 18.2.0
│ └── ✕ unmet peer react-dom@"^16.8.6 || ^17": found 18.2.0
├─┬ react-simple-code-editor 0.7.1
│ ├── ✕ unmet peer react@^16.0.0: found 18.2.0
│ └── ✕ unmet peer react-dom@^16.0.0: found 18.2.0
├─┬ react-sortable-hoc 2.0.0
│ ├── ✕ unmet peer react@"^16.3.0 || ^17.0.0": found 18.2.0
│ └── ✕ unmet peer react-dom@"^16.3.0 || ^17.0.0": found 18.2.0
├─┬ react-virtualized 9.22.3
│ ├── ✕ unmet peer react@"^15.3.0 || ^16.0.0-alpha": found 18.2.0
│ └── ✕ unmet peer react-dom@"^15.3.0 || ^16.0.0-alpha": found 18.2.0
├─┬ redux-connect 10.0.0
│ ├── ✕ unmet peer react@^16.8.4: found 18.2.0
│ ├── ✕ unmet peer [email protected]: found 8.1.2
│ └── ✕ unmet peer [email protected]: found 3.0.0
├─┬ @testing-library/jest-dom 6.4.2
│ └── ✕ unmet peer jest@">= 28": found 26.6.3
├─┬ eslint-import-resolver-babel-plugin-root-import 1.1.1
│ └── ✕ unmet peer babel-plugin-root-import@^5.1.0: found 6.1.0
├─┬ ts-jest 26.5.6
│ └── ✕ unmet peer typescript@">=3.8 <5.0": found 5.6.3
└─┬ react-intl-redux 2.3.0
├── ✕ unmet peer react-redux@"^5.0.1 || ^6.0.0 || ^7.0.0": found 8.1.2
└── ✕ unmet peer prop-types@^15.8.1: found 15.7.2
core/packages/volto-slate
├─┬ react-intl 3.12.1
│ └── ✕ unmet peer react@^16.3.0: found 18.2.0
└─┬ react-router-dom 5.2.0
└─┬ react-router 5.2.0
└─┬ mini-create-react-context 0.4.1
└── ✕ unmet peer react@"^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0": found 18.2.0
core/packages/volto-testing
└─┬ @testing-library/react 12.1.5
├── ✕ unmet peer react@<18.0.0: found 18.2.0
└── ✕ unmet peer react-dom@<18.0.0: found 18.2.0
Done in 7.5s
make[1]: Entering directory '/Users/katjasuss/Desktop/_temp/scratch_cookieplone/20241018/volto-addon'
> @plone/[email protected] build /Users/katjasuss/Desktop/_temp/scratch_cookieplone/20241018/volto-addon/core/packages/registry
> parcel build
Error: No prebuild or local build of @parcel/watcher found. Tried @parcel/watcher-darwin-x64. Please ensure it is installed (don't use --no-optional when installing with npm). Otherwise it is possible we don't support your platform yet. If this is the case, please report an issue to https://github.com/parcel-bundler/watcher.
at Object.<anonymous> (/Users/katjasuss/Desktop/_temp/scratch_cookieplone/20241018/volto-addon/node_modules/.pnpm/@[email protected]/node_modules/@parcel/watcher/index.js:26:13)
at Module._compile (node:internal/modules/cjs/loader:1159:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1213:10)
at Module.load (node:internal/modules/cjs/loader:1037:32)
at Module._load (node:internal/modules/cjs/loader:878:12)
at Module.require (node:internal/modules/cjs/loader:1061:19)
at require (node:internal/modules/cjs/helpers:103:18)
at Object.<anonymous> (/Users/katjasuss/Desktop/_temp/scratch_cookieplone/20241018/volto-addon/node_modules/.pnpm/@[email protected]_@[email protected]_@[email protected]__@[email protected]/node_modules/@parcel/fs/lib/index.js:7:28)
at Module._compile (node:internal/modules/cjs/loader:1159:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1213:10)
/Users/katjasuss/Desktop/_temp/scratch_cookieplone/20241018/volto-addon/core/packages/registry:
ERR_PNPM_RECURSIVE_RUN_FIRST_FAIL @plone/[email protected] build: `parcel build`
Exit status 1
make[1]: *** [Makefile:54: core/packages/registry/dist] Error 1
make[1]: Leaving directory '/Users/katjasuss/Desktop/_temp/scratch_cookieplone/20241018/volto-addon'
make: *** [Makefile:39: install] Error 2
make install is successfull with:
"devDependencies": {
"@parcel/core": "^2.12.0",
"@parcel/watcher-darwin-x64": "^2.4.1",
"@swc/core-darwin-x64": "1.4.16",
@ksuess What version of Node is active?
@davisagli I also just got a similar error and I have node version 20.14.0 https://gist.github.com/ichim-david/7748ad9cd6c7c7fd15542e48d7f422f8
@ichim-david That doesn't look like the same error. @ksuess' build failed with "Error: No prebuild or local build of @parcel/watcher found." but yours failed with "libc++abi: terminating due to uncaught exception of type std::__1::system_error: mutex lock failed: Invalid argument"
I tried to reproduce these errors but I didn't have any problem. These are both beyond my understanding of node packaging. Any ideas, @sneridagh?
@ksuess where do you need @parcel/watcher-darwin-x64 ? No package in core needs it as a direct dep. I never use the watcher... I only relied on the built things. Core nowadays only relies on @plone/registry to be built to work. Unless you are working on it, I'd suggest you don't open a watcher for that.
@ichim-david It happens to me as well, parcel throws a segmentation fault randomly in macos... :( Node issued a patch regarding that issue in 22 last week (but parcel denied to run, it throwed a segmentation fault always in 22), no clue if they ported it to 20, maybe it works better. Under my experience, removing completely dist folders, trying again, solves the problem. Let's hope it works better in 22, or in latest 20, if not, we might need to drop Parcel :(
After upgrading all possible screws to turn,
- upgrading to latest MacOS
- updating homebrew formulae
- trying Node 20, 22, and also 18
I still had another error than before: (see below)
I could finally install a vanilla project generated by cookieplone by first running pnpm install --force to install optionalDependencies
See https://pnpm.io/cli/install#--force
Hope that helps anyone stumbling about install problems like me.
> @plone/[email protected] build … /core/packages/registry
> parcel build
Error: dlopen(…
…ssary/node_modules/.pnpm/[email protected]/node_modules/lmdb/build/Release/lmdb.node
…
(mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64')),
…
After upgrading all possible screws to turn, I still had another error than before: (see below)
I could finally install a vanilla project generated by cookieplone by first running
pnpm install --forceto install optionalDependencies See https://pnpm.io/cli/install#--force Hope that helps anyone stumbling about install problems like me.
@ksuess I'm glad you were able to get this issue sorted after performing all of the steps that you did. If this command solved this issue we should document it then at the very least in order to give a solution to others as well in case install breaks similarly for them.
I would review a pull request that would insert another note admonition after the existing one here: https://6.docs.plone.org/install/create-project-cookieplone.html#install-the-project.