vuestorefront/vue-storefront

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

grzs opened this issue · 2 comments

grzs commented

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

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

grzs commented

Great! Thank you for the swift response!