diff --git a/packages/modules-runtime/.npm/package/npm-shrinkwrap.json b/packages/modules-runtime/.npm/package/npm-shrinkwrap.json index d568e24ea6..d3e6abacd1 100644 --- a/packages/modules-runtime/.npm/package/npm-shrinkwrap.json +++ b/packages/modules-runtime/.npm/package/npm-shrinkwrap.json @@ -1,7 +1,7 @@ { "dependencies": { "install": { - "version": "0.4.2" + "version": "0.4.4" } } } diff --git a/packages/modules-runtime/package.js b/packages/modules-runtime/package.js index c5d10792d7..a79537aa97 100644 --- a/packages/modules-runtime/package.js +++ b/packages/modules-runtime/package.js @@ -7,7 +7,7 @@ Package.describe({ }); Npm.depends({ - install: "0.4.2" + install: "0.4.4" }); Package.onUse(function(api) { diff --git a/tools/isobuild/linker.js b/tools/isobuild/linker.js index dd549007b3..3887aee239 100644 --- a/tools/isobuild/linker.js +++ b/tools/isobuild/linker.js @@ -495,14 +495,30 @@ _.extend(File.prototype, { _getClosureHeader() { if (this._useMeteorInstall()) { var header = ""; + if (this.deps.length > 0) { header += "["; _.each(this.deps, dep => { header += JSON.stringify(dep) + ","; }); } - return header + "function(require,exports,module){"; + + const headerParts = [ + header, + "function(require,exports,module" + ]; + + if (this.source.match(/\b__dirname\b/)) { + headerParts.push(",__filename,__dirname"); + } else if (this.source.match(/\b__filename\b/)) { + headerParts.push(",__filename"); + } + + headerParts.push("){"); + + return headerParts.join(""); } + return "(function(){"; }, diff --git a/tools/tests/apps/modules/package.json b/tools/tests/apps/modules/package.json index 3abc31eaba..58dbbd5c3b 100644 --- a/tools/tests/apps/modules/package.json +++ b/tools/tests/apps/modules/package.json @@ -6,6 +6,7 @@ "dependencies": { "events": "^1.1.0", "moment": "2.11.1", + "path": "^0.12.7", "regenerator": "^0.8.42", "stream-browserify": "^2.0.1", "util": "^0.10.3" diff --git a/tools/tests/apps/modules/tests.js b/tools/tests/apps/modules/tests.js index 250c4a6cb4..dd53ade74a 100644 --- a/tools/tests/apps/modules/tests.js +++ b/tools/tests/apps/modules/tests.js @@ -90,6 +90,14 @@ describe("app modules", () => { let foo = 1234; delete foo; }); + + it("should have access to filename and dirname", () => { + assert.strictEqual(require(__filename), exports); + assert.strictEqual( + require("path").relative(__dirname, __filename), + "tests.js" + ); + }); }); describe("template modules", () => {