designtesbrot / moleculer-minio

💾A moleculer service mixin for minio and S3 💾
MIT License
14 stars 8 forks source link

ERR_PACKAGE_PATH_NOT_EXPORTED #3

Open gionaico opened 1 year ago

gionaico commented 1 year ago

Versions

node 16.17.0 moleculer 0.14.23 minio 7.0.23

My service

const MIXIN_MINIO = require("moleculer-minio");
const MINIO_SVC = {
  name: "my_minio_svc",
  mixins: [MIXIN_MINIO],
  actions:{}
}

Error

 Failed to load service '/MY_LOCAL_PATH/minio.svc.ts' Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './src/errors' is not defined by "exports" in /node_modules/moleculer/package.json
at new NodeError (node:internal/errors:387:5)
    at throwExportsNotFound (node:internal/modules/esm/resolve:464:9)
    at packageExportsResolve (node:internal/modules/esm/resolve:748:3)
    at resolveExports (node:internal/modules/cjs/loader:493:36)
    at Function.Module._findPath (node:internal/modules/cjs/loader:533:31)
    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:942:27)
    at Function.Module._resolveFilename.sharedData.moduleResolveFilenameHook.installedValue [as _resolveFilename] (/usr/local/lib/node_modules/ts-node/node_modules/@cspotcode/source-map-support/source-map-support.js:679:30)
    at Function.Module._load (node:internal/modules/cjs/loader:804:27)
    at Module.require (node:internal/modules/cjs/loader:1028:19)
    at require (node:internal/modules/cjs/helpers:102:18) {
  code: 'ERR_PACKAGE_PATH_NOT_EXPORTED'

Solution

If you change the way to import Errors from Molecuer you will resolve this problem.

    // Current import way
    const {MoleculerRetryableError} = require("moleculer/src/errors");
    // Correct way
       // Option 1
       const {MoleculerRetryableError} = require("moleculer").Errors;
       // Option 2
       const {Errors } = require("moleculer");  //Errors.MoleculerRetryableError     
ImTheDeveloper commented 3 months ago

Good catch - there is the same error in the moleculer-aws-s3 package too.