mirror of
https://github.com/meteor/meteor.git
synced 2026-05-02 03:01:46 -04:00
https://github.com/meteor/meteor/issues/10658#issuecomment-550456095 https://github.com/meteor/meteor/issues/10658#issuecomment-551870115 As usual, changes to module resolution logic need to happen in parallel in tools/isobuild/resolver.ts and in packages/modules-runtime. However, thanks to the modern/legacy system, it's easy to make the modules-runtime package behave exactly the way(s) we want in the server, modern client, and legacy client bundles.
22 lines
662 B
JavaScript
22 lines
662 B
JavaScript
meteorInstall = makeInstaller({
|
|
// On the client, make package resolution prefer the "browser" field of
|
|
// package.json over the "module" field over the "main" field.
|
|
browser: true,
|
|
|
|
// The difference between legacy.js and modern.js is that this module
|
|
// prefers "main" over "module" (see issue #10658).
|
|
mainFields: ["browser", "main", "module"],
|
|
|
|
fallback: function(id, parentId, error) {
|
|
if (id && id.startsWith('meteor/')) {
|
|
var packageName = id.split('/', 2)[1];
|
|
throw new Error(
|
|
'Cannot find package "' + packageName + '". ' +
|
|
'Try "meteor add ' + packageName + '".'
|
|
);
|
|
}
|
|
|
|
throw error;
|
|
}
|
|
});
|