Folder structure for multiple servies with shared library?

I sure it will. I was no aware I can specify a path in the lambda handler, and without that the handler is placed at root level, meaning you cannot include files above.
If instead you change the folder structure to something like this

dist
    shared
        *.js
    serviceA
        fn1handler.js
        fn2handler.js
    serviceB
        handler.js
src
    shared
        *.js
    serviceA
        handler.js
        serverless.yml
    serviceB
        handler.js
        serverless.yml

and then define the handlers as

functions:
  fn1:
    handler: 'dist/serviceA/fn1handler.handler'
  fn2:
    handler: 'dist/serviceA/fn2handler.handler'

Then I’m sure it will work