Plone 6 Volto generate app - Cannot find module 'is-ci'

This question is related to Plone 6, specifically when attempting to create a new Volto app.

Following this documentation (volto/packages/generator-volto at master · plone/volto · GitHub) I am attempting to generate a new Volto project using Yeoman.

I have the prerequisites installed. I've included some versions of the more front end related requirements below:

root@ps01:/opt/plone_test/myvoltoapp# nvm version
v16.18.1
root@ps01:/opt/plone_test/myvoltoapp# npm -v
8.19.2
root@ps01:/opt/plone_test/myvoltoapp# node -v
v16.18.1
root@ps01:/opt/plone_test/myvoltoapp# yo --version
4.3.1
root@ps01:/opt/plone_test/myvoltoapp# yarn -v
1.22.19

When attempting to run yo @plone/volto I receive the following error:

root@ps01:/opt/plone_test/myvoltoapp# yo @plone/volto
node:internal/modules/cjs/loader:988
  throw err;
  ^

Error: Cannot find module 'is-ci'
Require stack:
- /root/.nvm/versions/node/v16.18.1/lib/node_modules/yo/node_modules/update-notifier/index.js
- /root/.nvm/versions/node/v16.18.1/lib/node_modules/yo/lib/cli.js
    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:985:15)
    at Function.Module._load (node:internal/modules/cjs/loader:833:27)
    at Module.require (node:internal/modules/cjs/loader:1057:19)
    at require (node:internal/modules/cjs/helpers:103:18)
    at lazy (/root/.nvm/versions/node/v16.18.1/lib/node_modules/yo/node_modules/import-lazy/index.js:2:51)
    at /root/.nvm/versions/node/v16.18.1/lib/node_modules/yo/node_modules/import-lazy/index.js:10:11
    at new UpdateNotifier (/root/.nvm/versions/node/v16.18.1/lib/node_modules/yo/node_modules/update-notifier/index.js:46:4)
    at module.exports (/root/.nvm/versions/node/v16.18.1/lib/node_modules/yo/node_modules/update-notifier/index.js:183:25)
    at updateCheck (/root/.nvm/versions/node/v16.18.1/lib/node_modules/yo/lib/cli.js:54:20)
    at Object.<anonymous> (/root/.nvm/versions/node/v16.18.1/lib/node_modules/yo/lib/cli.js:187:1) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/root/.nvm/versions/node/v16.18.1/lib/node_modules/yo/node_modules/update-notifier/index.js',
    '/root/.nvm/versions/node/v16.18.1/lib/node_modules/yo/lib/cli.js'
  ]
}

I can confirm I do have is-ci installed (although globally) and root has access to the folder.

root@ps01:/opt/plone_test/myvoltoapp# ls -lha /root/.nvm/versions/node/v16.18.1/lib/node_modules
total 28K
drwxr-xr-x 7 root root 4.0K Nov 10 11:04 .
drwxr-xr-x 3 1001 1001 4.0K Nov  4 11:33 ..
drwxr-xr-x 4 root root 4.0K Nov  4 11:33 corepack
drwxr-xr-x 3 root root 4.0K Nov  9 20:07 is-ci
drwxr-xr-x 7 root root 4.0K Nov  4 11:33 npm
drwxr-xr-x 3 root root 4.0K Nov 10 11:04 @plone
drwxr-xr-x 4 root root 4.0K Nov 10 11:04 yo

I'm not really sure where to go from here, if anyone has any information or can point me in the right direction I would greatly appreciate it.

Thanks in advance.

This is a copy of my SO question here:

I've posted it here to hopefully increase visibility.

When you ran the cookiecutter, what versions were installed of Volto and other packages?

Hi @stevepiercy

Here's the output of cookiecutter in its entirety as it doesn't look like it gets that far (I'm intending to use the non-Docker route if that makes any difference: Install Plone from its packages – Install — Plone Documentation v6.0-dev)

================================================================================
Project Title generation
================================================================================
Running sanity checks
  - Python: ✓
  - Node: ✓
  - yo: ✓
  - Docker: Docker not found.
  - git: ✓

Summary:
  - Plone version: 6.0.0rc2
  - Volto version: 16.3.0
  - Volto Generator version: 6.1.2
  - Output folder: /opt/plone_test_6.1/project-title

Frontend codebase:
 - Installing @plone/generator-volto@6.1.2

 - Generate frontend application with @plone/volto 16.3.0
There was an error, see /opt/plone_test_6.1/plone_starter_error.log for details
ERROR: Stopping generation because post_gen_project hook script didn't exit successfully
Hook script failed (exit status: 1)

plone_starter_error.log contents:

root@ps01:/opt/plone_test_6.1# cat /opt/plone_test_6.1/plone_starter_error.log
node:internal/modules/cjs/loader:988
  throw err;
  ^

Error: Cannot find module 'is-ci'
Require stack:
- /root/.nvm/versions/node/v16.18.1/lib/node_modules/yo/node_modules/update-notifier/index.js
- /root/.nvm/versions/node/v16.18.1/lib/node_modules/yo/lib/cli.js
    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:985:15)
    at Function.Module._load (node:internal/modules/cjs/loader:833:27)
    at Module.require (node:internal/modules/cjs/loader:1057:19)
    at require (node:internal/modules/cjs/helpers:103:18)
    at lazy (/root/.nvm/versions/node/v16.18.1/lib/node_modules/yo/node_modules/import-lazy/index.js:2:51)
    at /root/.nvm/versions/node/v16.18.1/lib/node_modules/yo/node_modules/import-lazy/index.js:10:11
    at new UpdateNotifier (/root/.nvm/versions/node/v16.18.1/lib/node_modules/yo/node_modules/update-notifier/index.js:46:4)
    at module.exports (/root/.nvm/versions/node/v16.18.1/lib/node_modules/yo/node_modules/update-notifier/index.js:183:25)
    at updateCheck (/root/.nvm/versions/node/v16.18.1/lib/node_modules/yo/lib/cli.js:54:20)
    at Object.<anonymous> (/root/.nvm/versions/node/v16.18.1/lib/node_modules/yo/lib/cli.js:187:1) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/root/.nvm/versions/node/v16.18.1/lib/node_modules/yo/node_modules/update-notifier/index.js',
    '/root/.nvm/versions/node/v16.18.1/lib/node_modules/yo/lib/cli.js'
  ]
}

I get the same error if I use the versions shown on the documentation, although this cookiecutter includes Volto Generator and not just Volto.

================================================================================
Project Title generation
================================================================================
Running sanity checks
  - Python: ✓
  - Node: ✓
  - yo: ✓
  - Docker: Docker not found.
  - git: ✓

Summary:
  - Plone version: 6.0.0b2
  - Volto version: 16.0.0-alpha.35
  - Volto Generator version: 6.1.2
  - Output folder: /opt/plone_test_2/project-title

Frontend codebase:
 - Installing @plone/generator-volto@6.1.2
 - Generate frontend application with @plone/volto 16.0.0-alpha.35
There was an error, see /opt/plone_test_2/plone_starter_error.log for details
ERROR: Stopping generation because post_gen_project hook script didn't exit successfully
Hook script failed (exit status: 1)
root@ps01:/opt/plone_test_2# cat /opt/plone_test_2/plone_starter_error.log
node:internal/modules/cjs/loader:988
  throw err;
  ^

Error: Cannot find module 'is-ci'
Require stack:
- /root/.nvm/versions/node/v16.18.1/lib/node_modules/yo/node_modules/update-notifier/index.js
- /root/.nvm/versions/node/v16.18.1/lib/node_modules/yo/lib/cli.js
    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:985:15)
    at Function.Module._load (node:internal/modules/cjs/loader:833:27)
    at Module.require (node:internal/modules/cjs/loader:1057:19)
    at require (node:internal/modules/cjs/helpers:103:18)
    at lazy (/root/.nvm/versions/node/v16.18.1/lib/node_modules/yo/node_modules/import-lazy/index.js:2:51)
    at /root/.nvm/versions/node/v16.18.1/lib/node_modules/yo/node_modules/import-lazy/index.js:10:11
    at new UpdateNotifier (/root/.nvm/versions/node/v16.18.1/lib/node_modules/yo/node_modules/update-notifier/index.js:46:4)
    at module.exports (/root/.nvm/versions/node/v16.18.1/lib/node_modules/yo/node_modules/update-notifier/index.js:183:25)
    at updateCheck (/root/.nvm/versions/node/v16.18.1/lib/node_modules/yo/lib/cli.js:54:20)
    at Object.<anonymous> (/root/.nvm/versions/node/v16.18.1/lib/node_modules/yo/lib/cli.js:187:1) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/root/.nvm/versions/node/v16.18.1/lib/node_modules/yo/node_modules/update-notifier/index.js',
    '/root/.nvm/versions/node/v16.18.1/lib/node_modules/yo/lib/cli.js'
  ]
}

Thanks

I would suggest you create an issue in GitHub - collective/cookiecutter-plone-starter: Cookiecutter Plone Starter is a framework for jumpstarting Plone 6 projects quickly.. I am pretty sure this is not a documentation issue. It could be an issue for Volto, too, but let's start with the cookiecutter, then work downstream.