From 97fa69bc4e83e973d1b51beb4107f7cd1b88c3a7 Mon Sep 17 00:00:00 2001 From: blond Date: Wed, 20 Apr 2016 13:39:34 +0300 Subject: [PATCH] fix: use eval instead of require In most ENB packages used `mock-fs` to testing. The `mock-fs` does not support `require` for `Node.js 4`: https://github.com/tschaub/mock-fs/issues/43. Because of this `node.runTechAndRequire()` will throw error: ``` Cannot find module 'path/to/file.js' ``` --- lib/mock-node.js | 8 +++++--- package.json | 1 + 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/mock-node.js b/lib/mock-node.js index ee2c269..6f78f43 100644 --- a/lib/mock-node.js +++ b/lib/mock-node.js @@ -6,7 +6,7 @@ var path = require('path'), CacheStorage = require('enb/lib/cache/cache-storage'), Cache = require('enb/lib/cache/cache'), asyncFs = require('enb').asyncFs, - clearRequire = require('clear-require'); + safeEval = require('gulp-eval').eval; module.exports = inherit({ __constructor: function (nodePath) { @@ -224,8 +224,10 @@ module.exports = inherit({ return this._buildDefer.promise().then(function () { return vow.all(tech.getTargets().map(function (targetName) { var filename = _this.resolvePath(targetName); - clearRequire(filename); - return require(filename); + + return asyncFs.read(filename, 'utf-8').then(function (source) { + return safeEval(source); + }); }, this)); }.bind(this)); }.bind(this)); diff --git a/package.json b/package.json index f512af4..dc9db00 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ }, "dependencies": { "clear-require": "1.0.1", + "gulp-eval": "1.0.0-0", "inherit": "2.2.2", "vow": "0.4.11" },