Files
meteor/packages/modules/install-packages.js
Ben Newman eadd954115 Use alias instead of stub module for meteor/package imports.
Aliases are lighter weight than stub module functions, and easier for the
dynamic import(...) dependency traversal logic to understand.
2017-02-16 18:20:41 -05:00

31 lines
1006 B
JavaScript

function install(name, mainModule) {
var meteorDir = {};
// Given a package name <name>, install a stub module in the
// /node_modules/meteor directory called <name>.js, so that
// require.resolve("meteor/<name>") will always return
// /node_modules/meteor/<name>.js instead of something like
// /node_modules/meteor/<name>/index.js, in the rare but possible event
// that the package contains a file called index.js (#6590).
if (typeof mainModule === "string") {
// Set up an alias from /node_modules/meteor/<package>.js to the main
// module, e.g. meteor/<package>/index.js.
meteorDir[name + ".js"] = mainModule;
} else {
// back compat with old Meteor packages
meteorDir[name + ".js"] = function (r, e, module) {
module.exports = Package[name];
};
}
meteorInstall({
node_modules: {
meteor: meteorDir
}
});
}
// This file will be modified during computeJsOutputFilesMap to include
// install(<name>) calls for every Meteor package.