Skip to content

Commit acf5b71

Browse files
authored
Merge pull request #847 from electron-userland/more-proper-definition-of-modules
Better detection of node modules when pruning
2 parents b3c610c + 69ad04b commit acf5b71

File tree

4 files changed

+11
-0
lines changed

4 files changed

+11
-0
lines changed

prune.js

+1
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ class Pruner {
5959
module.exports = {
6060
isModule: function isModule (pathToCheck) {
6161
return fs.pathExists(path.join(pathToCheck, 'package.json'))
62+
.then(exists => exists && path.basename(path.dirname(pathToCheck)) === 'node_modules')
6263
},
6364
Pruner: Pruner
6465
}

test/fixtures/prune-is-module/node_modules/module/not-module/package.json

Whitespace-only changes.

test/fixtures/prune-is-module/node_modules/module/package.json

Whitespace-only changes.

test/prune.js

+10
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
const fs = require('fs-extra')
44
const path = require('path')
5+
const prune = require('../prune')
6+
const test = require('ava')
57
const util = require('./_util')
68

79
function checkDependency (t, resourcesPath, moduleName, moduleExists) {
@@ -53,3 +55,11 @@ util.testSinglePlatform('prune electron in dependencies', (t, baseOpts) => {
5355

5456
util.testSinglePlatform('prune: false test', createPruneOptionTest, false,
5557
'package.json devDependency should exist under app/node_modules')
58+
59+
test('isModule only detects modules inside a node_modules parent folder', t =>
60+
prune.isModule(util.fixtureSubdir(path.join('prune-is-module', 'node_modules', 'module')))
61+
.then(isModule => {
62+
t.true(isModule, 'module folder should be detected as module')
63+
return prune.isModule(util.fixtureSubdir(path.join('prune-is-module', 'node_modules', 'module', 'not-module')))
64+
}).then(isModule => t.false(isModule, 'not-module folder should not be detected as module'))
65+
)

0 commit comments

Comments
 (0)