diff --git a/packages/taskr/lib/plugins.js b/packages/taskr/lib/plugins.js index 8a331c8d..32f25277 100644 --- a/packages/taskr/lib/plugins.js +++ b/packages/taskr/lib/plugins.js @@ -4,6 +4,7 @@ const p = require('path'); const flatten = require('./fn').flatten; const isObject = require('./fn').isObject; const co = require('bluebird').coroutine; +const createRequire = require('create-require'); const $ = require('./utils'); const rgx = /^@(taskr|fly)|(taskr|fly)-/i; @@ -18,13 +19,8 @@ const join = p.join; */ function req(name, base) { try { - try { - name = require.resolve(name); - } catch (_) { - name = join(base, name); - } finally { - return require(name); - } + const relativeRequire = createRequire(base) + return relativeRequire(name); } catch (e) { $.alert(e.message); } diff --git a/packages/taskr/package.json b/packages/taskr/package.json index 9197be6c..2de7dd8f 100644 --- a/packages/taskr/package.json +++ b/packages/taskr/package.json @@ -19,6 +19,7 @@ "taskr.d.ts" ], "dependencies": { + "create-require": "^1.0.2", "bluebird": "^3.5.0", "clorox": "^1.0.1", "glob": "^7.1.2", @@ -29,6 +30,14 @@ "devDependencies": { "rimraf": "^2.6.1" }, + "peerDependencies": { + "@taskr/esnext": "^1.1.0" + }, + "peerDependenciesMeta": { + "@taskr/esnext": { + "optional": true + } + }, "scripts": { "test": "tape test/*.js | tap-spec" },