Skip to content

Using node-fs-extra with pkg (create executables) is causing an error in universalify #901

@Infern1

Description

@Infern1
  • Operating System:
  • Windows Server 2019
  • Node.js version:
  • Node LTS 32bit 14.161.1
  • fs-extra version:
  • 10.0.0

I'm using pkg for creating binaries of my NodeJS program. When running directly via NodeJS everything is working as should. However when I created my executable now with fs-extra it stops:

λ .\web_server.exe            
pkg/prelude/bootstrap.js:1359                                                                                                      
      throw error;                                                                                                                 
      ^                                                                                                                            
                                                                                                                                   
TypeError: Cannot read property 'name' of undefined                                                                                
    at C:\snapshot\\WEB_ServerTs\node_modules\fs-extra\node_modules\universalify\index.js:15:26                               
    at Object.<anonymous> (C:\snapshot\WEB_ServerTs\node_modules\fs-extra\lib\fs\index.js:57:27)                             
    at Module._compile (pkg/prelude/bootstrap.js:1433:22)                                                                          
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1218:10)                                                      
    at Module.load (internal/modules/cjs/loader.js:1047:32)                                                                        
    at Function.Module._load (internal/modules/cjs/loader.js:935:14)                                                               
    at Module.require (internal/modules/cjs/loader.js:1087:19)                                                                     
    at Module.require (pkg/prelude/bootstrap.js:1338:31)                                                                           
    at require (internal/modules/cjs/helpers.js:73:18)                                                                             
    at Object.<anonymous> (C:\snapshot\Linde\WEB_ServerTs\node_modules\fs-extra\lib\index.js:5:6)                                  

I tried to look in index.js from universalify however at least for me it doesn't make sense.

exports.fromCallback = function (fn) {
  return Object.defineProperty(function (...args) {
    if (typeof args[args.length - 1] === 'function') fn.apply(this, args)
    else {
      return new Promise((resolve, reject) => {
        fn.call(
          this,
          ...args,
          (err, res) => (err != null) ? reject(err) : resolve(res)
        )
      })
    }
  }, 'name', { value: fn.name })
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions