css-modules / css-modules-loader-core

A loader-agnostic CSS Modules implementation, based on PostCSS
91 stars 34 forks source link

Relative path in node_modules #161

Open longlho opened 7 years ago

longlho commented 7 years ago

If I try to compose from a module that's in node_modules and that happens to compose from a relative path module, it croaks:

{ Error: ENOENT: no such file or directory, open '/Users/longho/Work/css-modules-loader-core/test/test-cases/compose-node-module/cool-styles/bar.css' at Error (native) errno: -2, code: 'ENOENT', syscall: 'open', path: '/Users/longho/Work/css-modules-loader-core/test/test-cases/compose-node-module/cool-styles/bar.css' }

I've put the example in my fork: https://github.com/longlho/css-modules-loader-core/blob/master/node_modules/cool-styles/foo.css#L6

mikkom commented 7 years ago

I think I may be hitting this same issue when trying to @import a css file from node_modules. The css file in question composes from a relative path module which causes an error:

ERROR in ./~/css-loader?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!./~/postcss-loader!./spec/styleguide/theme/button.css
Module not found: Error: Cannot resolve 'file' or 'directory' ../helpers.css in /path/to/my/project/spec/styleguide/theme
 @ ./~/css-loader?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!./~/postcss-loader!./spec/styleguide/theme/button.css

Clearly it's using a wrong path as a base i.e. the one where I'm importing the file instead of the path under node_modules where the imported css resides.

Any pointers on how to fix this?