Skip to content

loadModules not working on windows #225

@slavb18

Description

@slavb18

Following code not working on windows os (node 14.15.5)
Same code on linux works

  await this.container.loadModules(
      ['src/repositories/**/*.mjs', 'src/usecases/**/*.mjs', 'src/providers/**/*.mjs'],
      {
        formatName: 'camelCase',
        esModules: true
      }
    );

Error:

Error [ERR_UNSUPPORTED_ESM_URL_SCHEME]: Only file and data URLs are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'c:'
    at Loader.defaultResolve [as _resolve] (internal/modules/esm/resolve.js:782:11)
    at Loader.resolve (internal/modules/esm/loader.js:86:40)
    at Loader.getModuleJob (internal/modules/esm/loader.js:230:28)
    at Loader.import (internal/modules/esm/loader.js:165:28)

Following code show no error, but does not loads any modules

import url from 'url'
import path from 'path';

function resolve(pth){
  return url.pathToFileURL(path.resolve(pth)).toString();
}

...

  await this.container.loadModules(
      [resolve('src/repositories/**/*.mjs'), resolve('src/usecases/**/*.mjs'), resolve('src/providers/**/*.mjs')],
      {
        formatName: 'camelCase',
        esModules: true
      }
    );

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions