From 002727e10fcea5de54cb99234066ade6f7154e73 Mon Sep 17 00:00:00 2001 From: vilicvane Date: Thu, 22 Oct 2015 14:45:30 +0800 Subject: [PATCH] proxy browserResolve for better compatibility; fix node bad option error; change process.argv[1] to current module path for commander.js compatibility. --- lib/bundle.js | 15 +++++++++++---- lib/exe.js | 10 ++++++++-- package.json | 3 ++- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/lib/bundle.js b/lib/bundle.js index e0daf7a..65090d0 100644 --- a/lib/bundle.js +++ b/lib/bundle.js @@ -21,10 +21,11 @@ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * **/ -var mdeps = require("module-deps"), -through = require("through"), -async = require("async"), -builtins = require("builtins"); +var mdeps = require("module-deps"), +browserResolve = require("browser-resolve"), +through = require("through"), +async = require("async"), +builtins = require("builtins"); var _log = require("./log"); @@ -43,6 +44,10 @@ function bundle (input, complete) { var md = mdeps({ + resolve: function (id, options, callback) { + options.browser = "main"; + return browserResolve(id, options, callback); + }, xtransform: function (tr, file) { var buffer = []; @@ -140,6 +145,8 @@ var loader = function (deps, key) { var darr = []; var dir = global.require("path").dirname(process.execPath); + process.argv[1] = key; + var argv3 = process.argv[3]; if (argv3) { argv3 = pathModule.relative(pathModule.dirname(process.execPath), argv3); diff --git a/lib/exe.js b/lib/exe.js index 142af42..f4d4d75 100644 --- a/lib/exe.js +++ b/lib/exe.js @@ -555,7 +555,13 @@ function _monkeyPatchMainJs (compiler, complete) { return ~content.indexOf("nexe"); }, function (content, next) { - next(null, content.replace(/\(function\(process\) \{/,'(function(process) {\n process._eval = \'require("nexe");\';\n process.argv.splice(1, 0, "nexe.js");\n')) + next(null, content.replace(/\(function\(process\) \{/,'\ +(function(process) {\n\ + process._eval = \'require("nexe");\';\n\ + if (process.argv[1] !== "nexe.js") {\n\ + process.argv.splice(1, 0, "nexe.js");\n\ + }\n\ +')) }, complete ); @@ -572,7 +578,7 @@ function _monkeyPatchChildProcess(compiler, complete) { return ~content.indexOf("--child_process"); }, function (content, next) { - next(null, content.replace(/return spawn\(/, 'args.unshift("--child_process");\n return spawn(')); + next(null, content.replace(/return spawn\(/, 'args.unshift("nexe.js", "--child_process");\n return spawn(')); }, complete ); diff --git a/package.json b/package.json index 23bef7a..5854ea3 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "main": "./lib/index.js", "dependencies": { "async": "1.2.1", + "browser-resolve": "^1.10.0", "builtins": "1.0.1", "colors": "^1.0.3", "glob": "^5.0.5", @@ -43,7 +44,7 @@ "ignoreFlags": true } }, - "preferGlobal": "true", + "preferGlobal": true, "bin": { "nexe": "./bin/nexe" }