mirror of
https://github.com/meteor/meteor.git
synced 2026-05-02 03:01:46 -04:00
@@ -1,3 +1,7 @@
|
||||
## vNEXT
|
||||
|
||||
* Support `Npm.require('foo/bar')`. #3505 #3526
|
||||
|
||||
## v.1.0.3.1, 2015-Jan-20
|
||||
|
||||
* Rewrite `meteor show` and `meteor search` to show package information for
|
||||
|
||||
@@ -1319,17 +1319,20 @@ _.extend(JsImage.prototype, {
|
||||
|
||||
var nodeModuleDir =
|
||||
files.pathJoin(item.nodeModulesDirectory.sourcePath, name);
|
||||
|
||||
if (files.exists(nodeModuleDir)) {
|
||||
var nodeModuleTopDir =
|
||||
files.pathJoin(item.nodeModulesDirectory.sourcePath,
|
||||
name.split("/")[0]);
|
||||
if (files.exists(nodeModuleTopDir)) {
|
||||
return require(nodeModuleDir);
|
||||
}
|
||||
|
||||
try {
|
||||
return require(name);
|
||||
} catch (e) {
|
||||
throw new Error("Can't load npm module '" + name +
|
||||
"' while loading " + item.targetPath +
|
||||
". Check your Npm.depends().'");
|
||||
buildmessage.error(
|
||||
"Can't load npm module '" + name + "' from " +
|
||||
item.targetPath + ". Check your Npm.depends().");
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -129,12 +129,17 @@ Fiber(function () {
|
||||
return require(name);
|
||||
}
|
||||
|
||||
var nodeModuleDir =
|
||||
path.resolve(serverDir, fileInfo.node_modules, name);
|
||||
var nodeModuleBase = path.resolve(serverDir, fileInfo.node_modules);
|
||||
|
||||
if (fs.existsSync(nodeModuleDir)) {
|
||||
var nodeModuleDir = path.resolve(nodeModuleBase, name);
|
||||
|
||||
// If the user does `Npm.require('foo/bar')`, then we should resolve to
|
||||
// the package's node modules if `foo` was one of the modules we
|
||||
// installed. (`foo/bar` might be implemented as `foo/bar.js` so we
|
||||
// can't just naively see if all of nodeModuleDir exists.
|
||||
if (fs.existsSync(path.resolve(nodeModuleBase, name.split("/")[0]))) {
|
||||
return require(nodeModuleDir);
|
||||
}
|
||||
}
|
||||
try {
|
||||
return require(name);
|
||||
} catch (e) {
|
||||
|
||||
Reference in New Issue
Block a user