anonrig / nestjs-keycloak-admin

Keycloak client and admin provider for Nest.js applications with built-in User Managed Access (UMA) and ACL support.
https://npmjs.com/package/nestjs-keycloak-admin
MIT License
181 stars 25 forks source link

Error: change require() to a dynamic import() #162

Closed MichaHumbel closed 2 years ago

MichaHumbel commented 2 years ago

Hi

After installing this package and starting my nestjs project I get the following error:

/source/node_modules/nestjs-keycloak-admin/dist/main/service.js:18 const keycloak_admin_client_1 = __importDefault(require("@keycloak/keycloak-admin-client")); ^ Error [ERR_REQUIRE_ESM]: require() of ES Module /source/node_modules/@keycloak/keycloak-admin-client/lib/index.js from /source/node_modules/nestjs-keycloak-admin/dist/main/service.js not supported. Instead change the require of index.js in /source/node_modules/nestjs-keycloak-admin/dist/main/service.js to a dynamic import() which is available in all CommonJS modules. at Object. (/source/node_modules/nestjs-keycloak-admin/dist/main/service.js:18:49) at Object. (/source/node_modules/nestjs-keycloak-admin/dist/main/module.js:13:19) at Object. (/source/node_modules/nestjs-keycloak-admin/dist/main/index.js:17:18) at Object. (/source/dist/common/auth/auth.module.js:12:33) at Object. (/source/dist/app.module.js:11:23) at Object. (/source/dist/main.js:8:22)

I use Node v17.8.0, "nestjs-keycloak-admin": "1.8.8"

anonrig commented 2 years ago

This is because official keycloak admin package stopped supporting CommonJS. You need to enable ESM to use this package, due to their decision's side-effect. I recommend reading this: https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c

anonrig commented 2 years ago

Btw, we should definitely stop distributing commonjs version referred in this line: https://github.com/anonrig/nestjs-keycloak-admin/blob/master/package.json#L21

anonrig commented 2 years ago

I updated Readme to include information about this issue. https://github.com/anonrig/nestjs-keycloak-admin#esm-restriction

anonrig commented 2 years ago

I removed CJS distribution (since it does not work). https://github.com/anonrig/nestjs-keycloak-admin/commit/e48f18e46489542c8a63782ced8e7bf9ed18c346