From 43c8df0bfeeffa35c43d550539c691f3515493fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20B=C3=B6nnemann?= Date: Mon, 13 Jul 2015 11:54:58 +0200 Subject: [PATCH] fix(plugins): require user plugins relative to the cwd --- package.json | 1 + src/lib/plugins.js | 6 ++++-- test/specs/plugins.js | 4 ++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 24bb2624..efbf830d 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ "npm-registry-client": "^6.4.0", "npmconf": "^2.1.2", "npmlog": "^1.2.1", + "require-relative": "^0.8.7", "run-auto": "^1.1.2", "semver": "^4.3.6" }, diff --git a/src/lib/plugins.js b/src/lib/plugins.js index 791dcaba..1c66d027 100644 --- a/src/lib/plugins.js +++ b/src/lib/plugins.js @@ -1,3 +1,5 @@ +const relative = require('require-relative') + let exports = module.exports = function (source) { return { analyzeCommits: exports.normalize(source.analyzeCommits, '@semantic-release/commit-analyzer'), @@ -7,10 +9,10 @@ let exports = module.exports = function (source) { } exports.normalize = function (plugin, fallback) { - if (typeof plugin === 'string') return require(plugin).bind(null, {}) + if (typeof plugin === 'string') return relative(plugin).bind(null, {}) if (plugin && (typeof plugin.path === 'string')) { - return require(plugin.path).bind(null, plugin) + return relative(plugin.path).bind(null, plugin) } return require(fallback).bind(null, plugin) diff --git a/test/specs/plugins.js b/test/specs/plugins.js index ee1c1c5f..c585efd6 100644 --- a/test/specs/plugins.js +++ b/test/specs/plugins.js @@ -5,7 +5,7 @@ const { normalize } = require('../../dist/lib/plugins') test('normalize and load plugin', function (t) { t.test('load from string', (tt) => { - const plugin = normalize('../../dist/lib/plugin-noop') + const plugin = normalize('./dist/lib/plugin-noop') tt.is(typeof plugin, 'function') @@ -14,7 +14,7 @@ test('normalize and load plugin', function (t) { t.test('load from object', (tt) => { const plugin = normalize({ - path: '../../dist/lib/plugin-noop' + path: './dist/lib/plugin-noop' }) tt.is(typeof plugin, 'function')