alexmingoia/jsx-transform

Tests do not work in node 5.x.x

fsoc opened this issue · 2 comments

fsoc commented

As you can see 4.2.3 works but not 5.2.0.
To reproduce, do the following in a git clone:

nvm install 4.2.3; nvm use 4.2.3; rm -rf node_modules/; npm install;gulp

[15:41:41] Using gulpfile ~/a/jsx-transform/gulpfile.js
[15:41:41] Starting 'test'...


  jsx.fromString()

    ✓ desugars JSX

    ✓ desugars JSX with ES6 module exports

    ✓ fromStrings self-closing tags

    ✓ renders JS expressions inside JSX tag

    ✓ supports custom component patterns

    ✓ supports spread attributes
    options.factory

      ✓ throws error if not set

      ✓ set factory
    options.passUnknownTagsToFactory

      ✓ passes unknown tags to options.factory
    options.unknownTagsAsString

      ✓ passes unknown tags to docblock ident as string
    options.arrayChildren

      ✓ dont pass array for children

  jsx.browserifyTransform()

    ✓ transforms JSX (42ms)

    ✓ ignores .json files


  13 passing (133ms)

[15:41:42] Finished 'test' after 581 ms
[15:41:42] Starting 'default'...
[15:41:42] Finished 'default' after 12 μs

nvm install 5.2.0; nvm use 5.2.0; rm -rf node_modules/; npm install 
[15:45:50] Using gulpfile ~/a/jsx-transform/gulpfile.js
[15:45:50] Starting 'test'...
[15:45:51] 'test' errored after 587 ms
[15:45:51] Error in plugin 'gulp-mocha'
Message:
    Cannot find module 'jstransform/node_modules/esprima-fb'
Details:
    code: MODULE_NOT_FOUND
Stack:
Error: Cannot find module 'jstransform/node_modules/esprima-fb'
  at Function.Module._resolveFilename (module.js:336:15)
  at Module.require (/Users/fsoc/a/jsx-transform/node_modules/jscoverage/lib/patch.js:56:23)
  at require (module.js:384:17)
  at Object.<anonymous> (/Users/fsoc/a/jsx-transform/lib/visitor.js:57:14)
  at Module._compile (module.js:460:26)
  at Object.Module._extensions..js (/Users/fsoc/a/jsx-transform/node_modules/jscoverage/lib/patch.js:115:12)
  at Module.require (/Users/fsoc/a/jsx-transform/node_modules/jscoverage/lib/patch.js:76:30)
  at require (module.js:384:17)
  at Object.<anonymous> (/Users/fsoc/a/jsx-transform/lib/jsx.js:90:17)
  at Module._compile (module.js:460:26)
  at Object.Module._extensions..js (/Users/fsoc/a/jsx-transform/node_modules/jscoverage/lib/patch.js:115:12)
  at Module.require (/Users/fsoc/a/jsx-transform/node_modules/jscoverage/lib/patch.js:76:30)
  at require (module.js:384:17)
  at Object.<anonymous> (/Users/fsoc/a/jsx-transform/test/jsx.js:4:59)
  at Module._compile (module.js:460:26)
  at Object.Module._extensions..js (/Users/fsoc/a/jsx-transform/node_modules/jscoverage/lib/patch.js:115:12)
  at Module.load (/Users/fsoc/a/jsx-transform/node_modules/coffee-script/lib/coffee-script/register.js:45:36)
  at Function.Module._load (module.js:310:12)
  at Module.require (module.js:365:17)
  at Module.require (/Users/fsoc/a/jsx-transform/node_modules/jscoverage/lib/patch.js:63:29)
  at require (module.js:384:17)
  at /Users/fsoc/a/jsx-transform/node_modules/mocha/lib/mocha.js:216:27
  at Array.forEach (native)
  at Mocha.loadFiles (/Users/fsoc/a/jsx-transform/node_modules/mocha/lib/mocha.js:213:14)
  at Mocha.run (/Users/fsoc/a/jsx-transform/node_modules/mocha/lib/mocha.js:453:10)
  at Domain.<anonymous> (/Users/fsoc/a/jsx-transform/node_modules/gulp-mocha/index.js:56:20)
  at Domain.run (domain.js:197:16)
  at Stream.<anonymous> (/Users/fsoc/a/jsx-transform/node_modules/gulp-mocha/index.js:54:5)
  at _end (/Users/fsoc/a/jsx-transform/node_modules/through/index.js:65:9)
  at Stream.stream.end (/Users/fsoc/a/jsx-transform/node_modules/through/index.js:74:5)
  at DestroyableTransform.onend (/Users/fsoc/a/jsx-transform/node_modules/readable-stream/lib/_stream_readable.js:523:10)
  at DestroyableTransform.g (events.js:199:16)
  at DestroyableTransform.emit (events.js:129:20)
  at /Users/fsoc/a/jsx-transform/node_modules/readable-stream/lib/_stream_readable.js:965:16
  at process._tickDomainCallback (node.js:381:11)

I've just stumbled upon this as well. I believe #38 fixes this.

A workaround is for consumers of jsx-transform to add esprima-fb@^15001.1001.0-dev-harmony-fb as a devDependency.

This should be fixed now after #38 and #39 were merged.