Enigmatic-Smile / serverless-plugin-optimize

⛔️ DEPRECATED ⛔️ Bundle with Browserify, transpile and minify with Babel automatically to your NodeJS runtime compatible JavaScript
https://www.npmjs.com/package/serverless-plugin-optimize
MIT License
130 stars 53 forks source link

Try to access wrong module directory (node_mnode_modules) #127

Open minsung-git opened 3 years ago

minsung-git commented 3 years ago

Issue: severless-plugin-optimize try to access wrong directory "node_mnode_modules"

Symptom

Exception -----------------------------------------------
  [OperationalError: ENOENT: no such file or directory, stat '/Users/kmin/Documents/001_delivery_2021/999/development/floaws/.build/node_mnode_modules/swagger-ui-dist'] {
    cause: [Error: ENOENT: no such file or directory, stat '/Users/kmin/Documents/001_delivery_2021/999/development/floaws/.build/node_mnode_modules/swagger-ui-dist'] {
      errno: -2,
      code: 'ENOENT',
      syscall: 'stat',
      path: '/Users/kmin/Documents/001_delivery_2021/999/development/floaws/.build/node_mnode_modules/swagger-ui-dist'
    },
    isOperational: true,
    errno: -2,
    code: 'ENOENT',
    syscall: 'stat',
    path: '/Users/kmin/Documents/001_delivery_2021/999/development/floaws/.build/node_mnode_modules/swagger-ui-dist'
  }

Serverless.yaml

custom:
  optimize:
    external: ['swagger-ui-dist']

Fix

Below fix works well in my computer. Could you follow up this issue?

Original code:

const externalDir = externalEntry.substring(
            this.serverless.config.servicePath.length,
            externalEntry.lastIndexOf('node_modules/' + external)
          ) + 'node_modules/' + external

Fixed code

const externalDir = externalEntry.substring(
            externalEntry.lastIndexOf('node_modules/' + external),
            externalEntry.indexOf(external) + external.length
          )
EH7AN commented 3 years ago

Hi @minsung-git same problem here.

Packages:

"serverless-plugin-optimize": "4.2.1-rc.1", "@nestjs/cli": "^7.6.0", "@nestjs/core": "^8.0.6", "@nestjs/common": "^8.0.6", "@nestjs/swagger": "^5.0.9"

` Exception -----------------------------------------------

[OperationalError: ENOENT: no such file or directory, stat 'F:\test-space\heymate-backend.build\F:\test-space\heymate-backend.build\node_modules\swagger-ui-dist'] { cause: [Error: ENOENT: no such file or directory, stat 'F:\test-space\heymate-backend.build\F:\test-space\heymate-backend.build\node_modules\swagger-ui-dist'] { errno: -4058, code: 'ENOENT', syscall: 'stat', path: 'F:\test-space\heymate-backend\.build\F:\test-space\heymate-backend\.build\node_modules\swagger-ui-dist' }, isOperational: true, errno: -4058, code: 'ENOENT', syscall: 'stat', path: 'F:\test-space\heymate-backend\.build\F:\test-space\heymate-backend\.build\node_modules\swagger-ui-dist' } `

cordeirovictorhc commented 2 years ago

Issue: severless-plugin-optimize try to access wrong directory "node_mnode_modules"

Symptom

Exception -----------------------------------------------
  [OperationalError: ENOENT: no such file or directory, stat '/Users/kmin/Documents/001_delivery_2021/999/development/floaws/.build/node_mnode_modules/swagger-ui-dist'] {
    cause: [Error: ENOENT: no such file or directory, stat '/Users/kmin/Documents/001_delivery_2021/999/development/floaws/.build/node_mnode_modules/swagger-ui-dist'] {
      errno: -2,
      code: 'ENOENT',
      syscall: 'stat',
      path: '/Users/kmin/Documents/001_delivery_2021/999/development/floaws/.build/node_mnode_modules/swagger-ui-dist'
    },
    isOperational: true,
    errno: -2,
    code: 'ENOENT',
    syscall: 'stat',
    path: '/Users/kmin/Documents/001_delivery_2021/999/development/floaws/.build/node_mnode_modules/swagger-ui-dist'
  }

Serverless.yaml

custom:
  optimize:
    external: ['swagger-ui-dist']

Fix

Below fix works well in my computer. Could you follow up this issue?

Original code:

const externalDir = externalEntry.substring(
            this.serverless.config.servicePath.length,
            externalEntry.lastIndexOf('node_modules/' + external)
          ) + 'node_modules/' + external

Fixed code

const externalDir = externalEntry.substring(
            externalEntry.lastIndexOf('node_modules/' + external),
            externalEntry.indexOf(external) + external.length
          )

same issue and this worked for me! thks