browserify / browser-resolve

resolve function which support the browser field in package.json
MIT License
102 stars 70 forks source link

"resolve.mainFields"-like support #91

Open indexzero opened 6 years ago

indexzero commented 6 years ago

Was deep in the bowels of a large webpack.config.js file and came across a challenge that this package seems perfect for solving – with one kinda catch.

That is: nearly all of the time I want to resolve against "module", which I can believe is possible this way after reading the docs:

resolve.sync('@scope/my-module', { browser: 'module' });

However, in the absence of "module" I would like to fall-back to "browser". This is handled in webpack land as resolve.mainFields.

Is there interest in this feature? Does it already exist and I overlooked it in the code?

p.s. long-time no speak. Hope you are well.

indexzero commented 6 years ago

In the meantime I realized I can accomplish this with packageFilter:

resolve.sync('@scope/my-module', {
  browser: 'module',
  packageFilter: pkg => {
    pkg.module = pkg.module || pkg.browser;
    return pkg;
  }
});

Leaving this issue open since the proposed syntax is a little more obvious:

resolve.sync('@scope/my-module', { browser: ['module', 'browser'] })