[Bug]: resolveDependency() in core/middleware/integrations swallows error message

This issue has been tracked since 2022-06-02.

Describe the Bug

Tried to load a custom integration after a successful yarn build, but failed with dependency error.
I didn't have a clue so I started node with debugger and then I could see the exact error message.
It would be crucial to see what is exactly missing.
Here is the debugger output:

> require(path)
Error: Cannot find module 'graphql/language/visitor'
Require stack:
- /vsf-backendo/node_modules/apollo-utilities/lib/bundle.cjs.js
- /vsf-backendo/node_modules/apollo-client/bundle.umd.js
- /vsf-backendo/packages/api-client/lib/index.server.js
- /vsf-backendo/node_modules/@vue-storefront/middleware/lib/index.cjs.js
- /vsf-backendo/packages/theme/middleware.js
    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)
    at Function.Module._load (node:internal/modules/cjs/loader:778:27)
    at Module.require (node:internal/modules/cjs/loader:1005:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Object.<anonymous> (/vsf-backendo/node_modules/apollo-utilities/lib/bundle.cjs.js:58:16)
    at Module._compile (node:internal/modules/cjs/loader:1105:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Module.require (node:internal/modules/cjs/loader:1005:19)

Current behavior

$ node packages/theme/middleware.js

ℹ Middleware starting....                                                                                                                                             15:02:17
ℹ Loading integrations...                                                                                                                                             15:02:17
ℹ - Loading: backendo @vue-storefront/backendo-api/server                                                                                                                     15:02:17
/vsf-backendo/node_modules/@vue-storefront/middleware/lib/index.cjs.js:103
        throw new Error("Could not resolve integration :".concat(name, "\""));
        ^

Error: Could not resolve integration :@vue-storefront/backendo-api/server"
    at resolveDependency (/vsf-backendo/node_modules/@vue-storefront/middleware/lib/index.cjs.js:103:15)
    at /vsf-backendo/node_modules/@vue-storefront/middleware/lib/index.cjs.js:126:25
    at Array.reduce (<anonymous>)
    at registerIntegrations (/vsf-backendo/node_modules/@vue-storefront/middleware/lib/index.cjs.js:122:41)
    at createServer (/vsf-backendo/node_modules/@vue-storefront/middleware/lib/index.cjs.js:203:24)
    at Object.<anonymous> (/vsf-backendo/packages/theme/middleware.js:4:13)
    at Module._compile (node:internal/modules/cjs/loader:1105:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)

Expected behavior

$ node packages/theme/middleware.js

ℹ Middleware starting....                                                                                                                                             15:02:17
ℹ Loading integrations...                                                                                                                                             15:02:17
ℹ - Loading: backendo @vue-storefront/backendo-api/server                                                                                                                     15:02:17
/vsf-backendo/node_modules/@vue-storefront/middleware/lib/index.cjs.js:103
        throw new Error("Could not resolve integration :".concat(name, "\""));
        ^

Error: Could not resolve integration :@vue-storefront/backendo-api/server; Cannot find module 'graphql/language/visitor'
    at resolveDependency (/vsf-backendo/node_modules/@vue-storefront/middleware/lib/index.cjs.js:103:15)
    at /vsf-backendo/node_modules/@vue-storefront/middleware/lib/index.cjs.js:126:25
    at Array.reduce (<anonymous>)
    at registerIntegrations (/vsf-backendo/node_modules/@vue-storefront/middleware/lib/index.cjs.js:122:41)
    at createServer (/vsf-backendo/node_modules/@vue-storefront/middleware/lib/index.cjs.js:203:24)
    at Object.<anonymous> (/vsf-backendo/packages/theme/middleware.js:4:13)
    at Module._compile (node:internal/modules/cjs/loader:1105:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)

Steps to reproduce

No response

What version of Vue Storefront are you using?

2.5.13

What version of Node.js are you using?

16.15.0

What browser (and version) are you using?

Chrome 101.0.4951.64

What operating system (and version) are you using?

Mac OS 12.4 (Darwin Kernel Version 21.5.0)

Relevant log output

No response

Able to fix / change the documentation?

  • Yes
  • No

Code of Conduct

  • I agree to follow this project's Code of Conduct
filipsobol wrote this answer on 2022-06-02

This issue is already fixed on the develop branch and will be available in 2.6.

grzs wrote this answer on 2022-06-03

Great! Thank you for the swift response!

More Details About Repo
Owner Name vuestorefront
Repo Name vue-storefront
Full Name vuestorefront/vue-storefront
Language TypeScript
Created Date 2017-08-15
Updated Date 2023-03-19
Star Count 10081
Watcher Count 278
Fork Count 2032
Issue Count 32

YOU MAY BE INTERESTED

Issue Title Created Date Updated Date