diff --git a/CHANGELOG.md b/CHANGELOG.md index fd70d7c..5120c90 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,13 @@ # Change Logs +## v1.1.9 + + - fix bug: `node_modules` lookup may fall into endless loop and halt the program. + + ## v1.1.8 - - support modules from parent `node_modeuls` + - support modules from parent `node_modules` ## v1.1.7 diff --git a/cli.js b/cli.js index 36b5554..e0bee55 100755 --- a/cli.js +++ b/cli.js @@ -75,9 +75,9 @@ cmds['default'] = { root = localModule.path; } else { base = '.'; - while (root !== '/') { + while (path.resolve(base) !== '/') { root = path.resolve(path.join(base, 'node_modules', obj.name)); - if (fs.existsSync(root)) { + if (fs.existsSync(path.join(root, 'package.json'))) { break; } base = path.join(base, '..'); diff --git a/lib/main.ls b/lib/main.ls index 88e188c..6436980 100644 --- a/lib/main.ls +++ b/lib/main.ls @@ -43,9 +43,9 @@ cmds.default = if local-module => root = local-module.path else base = '.' - while root != \/ + while path.resolve(base) != \/ root = path.resolve(path.join base, \node_modules, obj.name) - if fs.exists-sync(root) => break + if fs.exists-sync(path.join(root, \package.json)) => break base = path.join(base, \..) info = JSON.parse(fs.read-file-sync path.join(root, "package.json") .toString!) diff --git a/package-lock.json b/package-lock.json index a754876..a08b592 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "fedep", - "version": "1.1.8", + "version": "1.1.9", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "fedep", - "version": "1.1.8", + "version": "1.1.9", "license": "MIT", "dependencies": { "@plotdb/colors": "^0.0.1", diff --git a/package.json b/package.json index 857cd36..c2c2e9f 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "cli.js" ], "description": "Frontend dependency installer", - "version": "1.1.8", + "version": "1.1.9", "homepage": "https://github.com/plotdb/fedep", "repository": { "type": "git",