dividab / tsconfig-paths

Load node modules according to tsconfig paths, in run-time or via API.
MIT License
1.8k stars 100 forks source link

Imports module not from nested #66

Open wclr opened 5 years ago

wclr commented 5 years ago

Clone, run and test:

https://github.com/whitecolor/tsconfig-paths-issues

{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "*": ["./node_modules/*"]
    }
  }
}
  "dependencies": {
    "tsconfig-paths": "^3.7.0",
    "plugin-error": "^1.0.1",
    "webpack-log": "^2.0.0"
  }

webpack-log module gives an error:

TypeError: Cannot read property 'info' of undefined

webpack-log imports ansi-colors from ./node_modules/ansi-colors not from nested ./node_modules/webpack-log/node_modules/ansi-colors

I'm not sure how it should work with this config by design, but what I want is to specify an additional location for finding node_modules. Here is kind of dummy example, because "*": ["./node_modules/*"] makes no actual sense as this location is included anyway. But this could be different (for example some where in nested folder), and anyway module should first try to require modules from its own "node_modules" first then go up, and only then would search for other locations.

So what I need again: inside say some module parent require('mod') 1) would try parent/node_modules 2) go up node_modules tree 3) only then would try locations described inside tsconfig "paths"

Is it possible, or how it should work?

typeofweb commented 4 years ago

@whitecolor did you find a solution to this problem?

wclr commented 4 years ago

@whitecolor did you find a solution to this problem?

Yes. Decided not to use tsconfig-paths -) To simplify things now I use only yarn workspaces to get rid of relative addresses.