Open ataromoku opened 3 weeks ago
Hi,
We encountered an issue where enhanced-resolver doesn't handle the exports field in package.json if the alias is used.
enhanced-resolver
exports
package.json
alias
@brightspace-ui/lms-context-provider
const { CachedInputFileSystem, ResolverFactory } = require("enhanced-resolve"); const path = require('path'); const fs = require('fs'); const myResolver = ResolverFactory.createResolver({ alias: { '@brightspace-ui': path.resolve(__dirname, 'node_modules', '@brightspace-ui'), }, fileSystem: new CachedInputFileSystem(fs, 2000) }); myResolver.resolve({}, __dirname, '@brightspace-ui/lms-context-provider/client.js', {}, (err, filepath) => { if (err) console.error(err); else console.log(filepath); });
C:\test\webpack-resolver-issue\node_modules\@brightspace-ui\lms-context-provider\src\client\client.js
details: "resolve '@brightspace-ui/lms-context-provider/client.js' in 'C:\\test\\webpack-resolver-issue'\n" + ' Parsed request is a module\n' + ' using description file: C:\\test\\webpack-resolver-issue\\package.json (relative path: .)\n' + " aliased with mapping '@brightspace-ui': 'C:\\test\\webpack-resolver-issue\\node_modules\\@brightspace-ui' to 'C:\\test\\webpack-resolver-issue\\node_mo dules\\@brightspace-ui/lms-context-provider/client.js'\n" + ' using description file: C:\\test\\webpack-resolver-issue\\package.json (relative path: .)\n' + ' using description file: C:\\test\\webpack-resolver-issue\\node_modules\\@brightspace-ui\\lms-context-provider\\package.json (relative path: ./clien t.js)\n' + ' no extension\n' + " C:\\test\\webpack-resolver-issue\\node_modules\\@brightspace-ui\\lms-context-provider\\client.js doesn't exist\n" + ' .js\n' + " C:\\test\\webpack-resolver-issue\\node_modules\\@brightspace-ui\\lms-context-provider\\client.js.js doesn't exist\n" + ' .json\n' + " C:\\test\\webpack-resolver-issue\\node_modules\\@brightspace-ui\\lms-context-provider\\client.js.json doesn't exist\n" + ' .node\n' + " C:\\test\\webpack-resolver-issue\\node_modules\\@brightspace-ui\\lms-context-provider\\client.js.node doesn't exist\n" + ' as directory\n' + " C:\\test\\webpack-resolver-issue\\node_modules\\@brightspace-ui\\lms-context-provider\\client.js doesn't exist"
If we use the browser field instead of the exports, we get the expected result.
browser
Intresting...
I guess thats the reason https://github.com/webpack/enhanced-resolve/blob/main/lib/ResolverFactory.js#L354
@vankop I think we should fix it
Hi,
We encountered an issue where
enhanced-resolver
doesn't handle theexports
field inpackage.json
if thealias
is used.Steps to reproduce
enhanced-resolver
and@brightspace-ui/lms-context-provider
Expected
C:\test\webpack-resolver-issue\node_modules\@brightspace-ui\lms-context-provider\src\client\client.js
Actual
Notes
If we use the
browser
field instead of theexports
, we get the expected result.