From 11f218c7855611083b4d62a7170b8789ded28787 Mon Sep 17 00:00:00 2001 From: vindeep07 Date: Fri, 26 Aug 2022 16:23:45 +0530 Subject: [PATCH] Added fix for giving preference to package.main for script --- lib/config/load.js | 4 +++- test/config/load.test.js | 12 ++++++++++++ test/fixtures/packages/main-and-index/index.js | 0 test/fixtures/packages/main-and-index/package.json | 3 +++ test/fixtures/packages/main-and-index/server.js | 0 5 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 test/fixtures/packages/main-and-index/index.js create mode 100644 test/fixtures/packages/main-and-index/package.json create mode 100644 test/fixtures/packages/main-and-index/server.js diff --git a/lib/config/load.js b/lib/config/load.js index bd5a03d8..29e213b9 100644 --- a/lib/config/load.js +++ b/lib/config/load.js @@ -16,7 +16,9 @@ var existsSync = fs.existsSync || path.existsSync; function findAppScript() { // nodemon has been run alone, so try to read the package file // or try to read the index.js file - if (existsSync('./index.js')) { + + var pkg = existsSync(path.join(process.cwd(), 'package.json')) && require(path.join(process.cwd(), 'package.json')); + if ((!pkg || pkg.main == undefined) && existsSync('./index.js')) { return 'index.js'; } } diff --git a/test/config/load.test.js b/test/config/load.test.js index 623f2ca5..7e472c0a 100644 --- a/test/config/load.test.js +++ b/test/config/load.test.js @@ -320,5 +320,17 @@ describe('config load', function () { }) }); + it('should give package.main preference for script over index.js', function (done) { + var dir = path.resolve(pwd, 'test/fixtures/packages/main-and-index'); + process.chdir(dir); + + var config = {}, + settings = {}, + options = {}; + load(settings, options, config, function (config) { + assert.deepEqual(config.execOptions.script, 'server.js'); + done(); + }); + }); }); diff --git a/test/fixtures/packages/main-and-index/index.js b/test/fixtures/packages/main-and-index/index.js new file mode 100644 index 00000000..e69de29b diff --git a/test/fixtures/packages/main-and-index/package.json b/test/fixtures/packages/main-and-index/package.json new file mode 100644 index 00000000..f9962a61 --- /dev/null +++ b/test/fixtures/packages/main-and-index/package.json @@ -0,0 +1,3 @@ +{ + "main": "server.js" +} diff --git a/test/fixtures/packages/main-and-index/server.js b/test/fixtures/packages/main-and-index/server.js new file mode 100644 index 00000000..e69de29b