serverless-plugin-typescript icon indicating copy to clipboard operation
serverless-plugin-typescript copied to clipboard

Symlinked node_modules breaks build on version>1.1.7

Open SpencerBriereWEQ opened this issue 6 years ago • 4 comments

In version>1.1.7, the behavior of how this plugin handles node_modules seems to have changed.

In our project, we have multiple sub-projects which all share the same dependencies. Rather than having dozens of duplicate node_modules, we opted to symlink a top-level node_modules folder into the sub-projects. Now, rather than symlinking to our symlink, the symlink is copied. This results in a broken symlink as the path doesn't evaluate to the node_modules folder.

Directory structure:

  • package.json
  • node_modules
  • projects/
    • a/
      • node_modules -> ../../node_modules
      • package.json -> ../../package.json
      • .build/
        • node_modules -> ../node_modules // Expected Behavior
    • b/
      • node_modules -> ../../node_modules
      • package.json -> ../../package.json
      • .build/
        • node_modules -> ../../node_modules // Current Behavior - broken symlink

Symlink path: ../../node_modules Expected Behavior: node_modules -> ../node_modules Current Behavior: node_modules -> ../../node_modules

SpencerBriereWEQ avatar Aug 20 '19 20:08 SpencerBriereWEQ

I can confirm this issue. Downgrading to 1.1.6 allows packaging to work. This is a bit of a problem with monorepos where symlinking is common.

cookejames avatar Oct 16 '19 16:10 cookejames

Maybe related to #170 as the symlink is kinda broken for higher versions than 1.1.7.

KingDarBoja avatar Jan 12 '20 02:01 KingDarBoja

This is still an issue today.

scrofungulus avatar Aug 25 '20 14:08 scrofungulus

In another tone since 1.1.7 my project goes from less than a minute to package to 6 minutes.

And the culprit is the copy dev dependencies function.

I have tried the esbuild plugin with success but it does not support decorators. So trying to figure out the best approach.

antoinegomez avatar Dec 13 '21 23:12 antoinegomez