Skip to content

Bruno CLI 3.4.0 fails with pnpm 11: Cannot find module 'qs' #8077

@jsilverdev

Description

@jsilverdev

I have checked the following:

  • I have searched existing issues and found nothing related to my issue.

This bug is:

  • making Bruno unusable for me
  • slowing me down but I'm able to continue working
  • annoying
  • this feature was working in a previous version but is broken in the current release.

Bruno version

3.4.0

Operating System

Windows 11 26 100.8390

Describe the bug

Installing @usebruno/cli globally with pnpm succeeds, but running bru fails immediately with a missing module error.

  • pnpm version: 11.2.2
  • node version: 24.16.0

Steps to reproduce

pnpm i -g @usebruno/cli

bru --version
node:internal/modules/cjs/loader:1503
throw err;
^

Error: Cannot find module 'qs'
Require stack:
- C:\Users\jsilverdev\AppData\Local\pnpm\store\v11\links\@usebruno\requests\0.17.0\55a14aab06514c67022f8c59befec8ba1a3c2fb7585b75a41638e060a5db700e\node_modules\@usebruno\requests\dist\cjs\index.js
- C:\Users\jsilverdev\AppData\Local\pnpm\store\v11\links\@usebruno\cli\3.4.0\278bd815bc59c88d99064371d99a15efc7ce203d0b033e95125d6f428c232d4c\node_modules\@usebruno\cli\src\index.js
- C:\Users\jsilverdev\AppData\Local\pnpm\store\v11\links\@usebruno\cli\3.4.0\278bd815bc59c88d99064371d99a15efc7ce203d0b033e95125d6f428c232d4c\node_modules\@usebruno\cli\bin\bru.js
  at Module._resolveFilename (node:internal/modules/cjs/loader:1500:15)
  at wrapResolveFilename (node:internal/modules/cjs/loader:1071:27)
  at defaultResolveImplForCJSLoading (node:internal/modules/cjs/loader:1095:10)
  at resolveForCJSWithHooks (node:internal/modules/cjs/loader:1116:12)
  at Module._load (node:internal/modules/cjs/loader:1285:25)
  at wrapModuleLoad (node:internal/modules/cjs/loader:255:19)
  at Module.require (node:internal/modules/cjs/loader:1600:12)
  at require (node:internal/modules/helpers:153:16)
  at Object.<anonymous> (C:\Users\jsilverdev\AppData\Local\pnpm\store\v11\links\@usebruno\requests\0.17.0\55a14aab06514c67022f8c59befec8ba1a3c2fb7585b75a41638e060a5db700e\node_modules\@usebruno\requests\dist\cjs\index.js:1:106)
  at Module._compile (node:internal/modules/cjs/loader:1854:14) {
code: 'MODULE_NOT_FOUND',
requireStack: [
  'C:\\Users\\jsilverdev\\AppData\\Local\\pnpm\\store\\v11\\links\\@usebruno\\requests\\0.17.0\\55a14aab06514c67022f8c59befec8ba1a3c2fb7585b75a41638e060a5db700e\\node_modules\\@usebruno\\requests\\dist\\cjs\\index.js',
  'C:\\Users\\jsilverdev\\AppData\\Local\\pnpm\\store\\v11\\links\\@usebruno\\cli\\3.4.0\\278bd815bc59c88d99064371d99a15efc7ce203d0b033e95125d6f428c232d4c\\node_modules\\@usebruno\\cli\\src\\index.js',
  'C:\\Users\\jsilverdev\\AppData\\Local\\pnpm\\store\\v11\\links\\@usebruno\\cli\\3.4.0\\278bd815bc59c88d99064371d99a15efc7ce203d0b033e95125d6f428c232d4c\\node_modules\\@usebruno\\cli\\bin\\bru.js'
]
}

Node.js v24.16.0

This appears to be caused by missing runtime dependency declarations when installed with pnpm's strict dependency layout.

I found these missing dependency declarations locally:

  • @usebruno/requests@0.17.0 imports qs, but does not declare qs in dependencies.
  • After patching that locally, @usebruno/filestore@0.9.0 fails because it requires nanoid, but nanoid is listed in
    devDependencies.
  • After patching that locally, @usebruno/js@0.48.0 fails because it imports @usebruno/requests, but does not declare it.

Local pnpm workaround

Adding these package extensions to my pnpm-workspace.yaml fixes the CLI locally:

packageExtensions:
  '@usebruno/filestore@0.9.0':
    dependencies:
      nanoid: 3.3.8
  '@usebruno/js@0.48.0':
    dependencies:
      '@usebruno/requests': 0.17.0
  '@usebruno/requests@0.17.0':
    dependencies:
      qs: ^6.15.0

Then relinking with:

pnpm i -g @usebruno/cli

After this, both commands work:

bru --version
bru --help

.bru file to reproduce the bug

N/A

Screenshots/Live demo link

Image

Metadata

Metadata

Labels

bugSomething isn't working

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions