stderr redirection breaks require
- Version: 7.5.0
- Platform: Darwin Kernel Version 16.5.0 (mac os sierra)
related workaround: https://github.com/rtfeldman/node-test-runner/pull/106, https://github.com/rtfeldman/node-test-runner/pull/106/commits/959fda06c99a19a0cc72d4a7b5568a405c11373a
We noticed that when redirecting stderr AND receiving input script via pipe, require
doesn't work with packages in package.json.
Minimal test case: (given a package.json
that includes ajv).
echo "require('ajv')" | node &> js.out || cat js.out
expected output: nothing, it's just a require
actual output:
fs.js:56
assertEncoding(options.encoding);
^
TypeError: assertEncoding is not a function
at getOptions (fs.js:56:5)
at Object.realpathSync (fs.js:1468:13)
at toRealPath (module.js:130:13)
at tryFile (module.js:126:22)
at tryPackage (module.js:107:10)
at Function.Module._findPath (module.js:183:20)
at Function.Module._resolveFilename (module.js:468:25)
at Function.Module._load (module.js:418:25)
at Module.require (module.js:498:17)
at require (internal/module.js:20:19)
also tested on another Ubuntu 14.04 server. Was not a problem using node 6.9.5