Build: did not recognize object of type "JSXElement"

After a fresh npm install, my app is failing with this error: “did not recognize object of type
"JSXElement”"
I feel like I’ve tried everything – like removing babel presets and plugins one by one.

If I remove the babel preset ‘meteor’, the build works. But then, of course, nothing works in the browser.
I can’t figure out, what has caused this to start happening. Has anyone experienced the same error?

Here’s the full console transcript:

 While processing files with ecmascript (for target os.osx.x86_64):
   /Users/jakobloekkemadsen/Documents/Projekter/app-name/app/node_modules/ast-types/lib/types.js:663:19: /imports/ui/components/stream/stream-header/EditTagForm.jsx: did not recognize object of type
   "JSXElement"
   at Object.getFieldNames (/Users/jakobloekkemadsen/Documents/Projekter/app-name/app/node_modules/ast-types/lib/types.js:663:19)
   at visitChildren (/Users/jakobloekkemadsen/Documents/Projekter/app-name/app/node_modules/ast-types/lib/path-visitor.js:223:36)
   at Visitor.PVp.visitWithoutReset (/Users/jakobloekkemadsen/Documents/Projekter/app-name/app/node_modules/ast-types/lib/path-visitor.js:204:20)
   at visitChildren (/Users/jakobloekkemadsen/Documents/Projekter/app-name/app/node_modules/ast-types/lib/path-visitor.js:246:25)
   at Visitor.PVp.visitWithoutReset (/Users/jakobloekkemadsen/Documents/Projekter/app-name/app/node_modules/ast-types/lib/path-visitor.js:204:20)
   at NodePath.each (/Users/jakobloekkemadsen/Documents/Projekter/app-name/app/node_modules/ast-types/lib/path.js:101:26)
   at visitChildren (/Users/jakobloekkemadsen/Documents/Projekter/app-name/app/node_modules/ast-types/lib/path-visitor.js:219:18)
   at Visitor.PVp.visitWithoutReset (/Users/jakobloekkemadsen/Documents/Projekter/app-name/app/node_modules/ast-types/lib/path-visitor.js:204:20)
   at visitChildren (/Users/jakobloekkemadsen/Documents/Projekter/app-name/app/node_modules/ast-types/lib/path-visitor.js:246:25)
   at Visitor.PVp.visitWithoutReset (/Users/jakobloekkemadsen/Documents/Projekter/app-name/app/node_modules/ast-types/lib/path-visitor.js:204:20)
   at visitChildren (/Users/jakobloekkemadsen/Documents/Projekter/app-name/app/node_modules/ast-types/lib/path-visitor.js:246:25)
   at Visitor.PVp.visitWithoutReset (/Users/jakobloekkemadsen/Documents/Projekter/app-name/app/node_modules/ast-types/lib/path-visitor.js:204:20)
   at NodePath.each (/Users/jakobloekkemadsen/Documents/Projekter/app-name/app/node_modules/ast-types/lib/path.js:101:26)
   at visitChildren (/Users/jakobloekkemadsen/Documents/Projekter/app-name/app/node_modules/ast-types/lib/path-visitor.js:219:18)
   at Visitor.PVp.visitWithoutReset (/Users/jakobloekkemadsen/Documents/Projekter/app-name/app/node_modules/ast-types/lib/path-visitor.js:204:20)
   at visitChildren (/Users/jakobloekkemadsen/Documents/Projekter/app-name/app/node_modules/ast-types/lib/path-visitor.js:246:25)
   at Visitor.PVp.visitWithoutReset (/Users/jakobloekkemadsen/Documents/Projekter/app-name/app/node_modules/ast-types/lib/path-visitor.js:204:20)
   at visitChildren (/Users/jakobloekkemadsen/Documents/Projekter/app-name/app/node_modules/ast-types/lib/path-visitor.js:246:25)
   at Visitor.PVp.visitWithoutReset (/Users/jakobloekkemadsen/Documents/Projekter/app-name/app/node_modules/ast-types/lib/path-visitor.js:204:20)
   at Context.visit (/Users/jakobloekkemadsen/Documents/Projekter/app-name/app/node_modules/ast-types/lib/path-visitor.js:409:13)
   at Context.types.PathVisitor.fromMethodsObject.preserveChild (/Users/jakobloekkemadsen/Documents/Projekter/app-name/app/node_modules/reify/lib/compiler.js:317:12)
   at Context.types.PathVisitor.fromMethodsObject.hoistExports (/Users/jakobloekkemadsen/Documents/Projekter/app-name/app/node_modules/reify/lib/compiler.js:265:10)
   at Context.types.PathVisitor.fromMethodsObject.visitExportDefaultDeclaration (/Users/jakobloekkemadsen/Documents/Projekter/app-name/app/node_modules/reify/lib/compiler.js:443:12)
   at Context.invokeVisitorMethod (/Users/jakobloekkemadsen/Documents/Projekter/app-name/app/node_modules/ast-types/lib/path-visitor.js:344:49)
   at Visitor.PVp.visitWithoutReset (/Users/jakobloekkemadsen/Documents/Projekter/app-name/app/node_modules/ast-types/lib/path-visitor.js:196:32)
   at NodePath.each (/Users/jakobloekkemadsen/Documents/Projekter/app-name/app/node_modules/ast-types/lib/path.js:101:26)
   at visitChildren (/Users/jakobloekkemadsen/Documents/Projekter/app-name/app/node_modules/ast-types/lib/path-visitor.js:219:18)
   at Visitor.PVp.visitWithoutReset (/Users/jakobloekkemadsen/Documents/Projekter/app-name/app/node_modules/ast-types/lib/path-visitor.js:204:20)
   at visitChildren (/Users/jakobloekkemadsen/Documents/Projekter/app-name/app/node_modules/ast-types/lib/path-visitor.js:246:25)
   at Visitor.PVp.visitWithoutReset (/Users/jakobloekkemadsen/Documents/Projekter/app-name/app/node_modules/ast-types/lib/path-visitor.js:204:20)
   at Visitor.PVp.visit (/Users/jakobloekkemadsen/Documents/Projekter/app-name/app/node_modules/ast-types/lib/path-visitor.js:133:29)
   at transform (/Users/jakobloekkemadsen/Documents/Projekter/app-name/app/node_modules/reify/lib/compiler.js:85:23)
   at PluginPass.visitor.Program (/Users/jakobloekkemadsen/Documents/Projekter/app-name/app/node_modules/babel-plugin-transform-es2015-modules-reify/index.js:73:9)
   at newFn
   (/Users/jakobloekkemadsen/.meteor/packages/ecmascript/.0.7.1-beta.4.1n2ov5s++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/babel-traverse/lib/visitors.js:276:21)
   at NodePath._call
   (/Users/jakobloekkemadsen/.meteor/packages/ecmascript/.0.7.1-beta.4.1n2ov5s++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/babel-traverse/lib/path/context.js:76:18)
   at NodePath.call
   (/Users/jakobloekkemadsen/.meteor/packages/ecmascript/.0.7.1-beta.4.1n2ov5s++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/babel-traverse/lib/path/context.js:48:17)
   at NodePath.visit
   (/Users/jakobloekkemadsen/.meteor/packages/ecmascript/.0.7.1-beta.4.1n2ov5s++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/babel-traverse/lib/path/context.js:105:12)
   at TraversalContext.visitQueue
   (/Users/jakobloekkemadsen/.meteor/packages/ecmascript/.0.7.1-beta.4.1n2ov5s++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/babel-traverse/lib/context.js:150:16)
   at TraversalContext.visitSingle
   (/Users/jakobloekkemadsen/.meteor/packages/ecmascript/.0.7.1-beta.4.1n2ov5s++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/babel-traverse/lib/context.js:108:19)
   at TraversalContext.visit
   (/Users/jakobloekkemadsen/.meteor/packages/ecmascript/.0.7.1-beta.4.1n2ov5s++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/babel-traverse/lib/context.js:192:19)
   at Function.traverse.node
   (/Users/jakobloekkemadsen/.meteor/packages/ecmascript/.0.7.1-beta.4.1n2ov5s++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/babel-traverse/lib/index.js:114:17)
   at traverse
   (/Users/jakobloekkemadsen/.meteor/packages/ecmascript/.0.7.1-beta.4.1n2ov5s++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/babel-traverse/lib/index.js:79:12)
   at File.transform
   (/Users/jakobloekkemadsen/.meteor/packages/ecmascript/.0.7.1-beta.4.1n2ov5s++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/babel-core/lib/transformation/file/index.js:548:35)
   at
   /Users/jakobloekkemadsen/.meteor/packages/ecmascript/.0.7.1-beta.4.1n2ov5s++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/babel-core/lib/transformation/pipeline.js:73:19
   at File.wrap
   (/Users/jakobloekkemadsen/.meteor/packages/ecmascript/.0.7.1-beta.4.1n2ov5s++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/babel-core/lib/transformation/file/index.js:564:16)
   at Pipeline.transformFromAst
   (/Users/jakobloekkemadsen/.meteor/packages/ecmascript/.0.7.1-beta.4.1n2ov5s++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/babel-core/lib/transformation/pipeline.js:70:17)
   at compile
   (/Users/jakobloekkemadsen/.meteor/packages/ecmascript/.0.7.1-beta.4.1n2ov5s++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/index.js:36:6)
   at Cache.Cp.get
   (/Users/jakobloekkemadsen/.meteor/packages/ecmascript/.0.7.1-beta.4.1n2ov5s++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/cache.js:94:19)
   at Object.compile
   (/Users/jakobloekkemadsen/.meteor/packages/ecmascript/.0.7.1-beta.4.1n2ov5s++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/index.js:25:23)
   at Object.Babel.compile (packages/babel-compiler.js:48:24)
   at packages/babel-compiler.js:168:22
   at Function.time (/tools/tool-env/profile.js:305:10)
   at profile (packages/babel-compiler.js:198:20)
   at BabelCompiler.BCp.processOneFileForTarget (packages/babel-compiler.js:167:20)
   at BabelCompiler.<anonymous> (packages/babel-compiler.js:99:26)
   at Array.forEach (native)
   at BabelCompiler.BCp.processFilesForTarget (packages/babel-compiler.js:98:14)


=> Your application has errors. Waiting for file change.

I had the same thing happen on a CI build, but the same code worked on my dev machine. Deleting node_modules and rerunning meteor npm install caused this problem to appear on my local machine. this indicates that something has changed in npm land. I’ll post back if I learn more.

@jakobloekke Try rolling back babel-preset-meteor to 6.23.1. That seems to be working for me. @benjamn I’ll file an issue on this in a bit. I don’t know if this will happen for all react apps or if it’s specific to our app, but the app this happened on doesn’t have a lot of web ui, so I suspect it’s pretty general.

Try using babel-preset-meteor@6.24.2 now?

1 Like

It works! :slight_smile: One more thing, if you think it relates:

I am running some mocha unit tests that broke at the same time. They don’t touch Meteor at all, but they do share the .babelrc (from a previous discussion we had):

{
  "presets": ["meteor", "react"],
  "plugins": ["transform-es2015-modules-commonjs"]
}

Before the update to 6.24.2, the output had broken to look like this, which may relate to a recent change in your reify npm module:

> app@ unit-test /Users/robertdickert/src/okgrow/app/web
> mocha ./tests/unit-tests --compilers js:babel-register,babel-polyfill

/Users/robertdickert/src/okgrow/app/web/tests/unit-tests/calculatePortfolioHistory.tests.js:3
var expect = void 0;module.importSync("chai", { "expect": function (v) {
                           ^

TypeError: module.importSync is not a function  

With 6.24.2, it now says module.import is not a function instead of module.importSync. Do you think this is related? I suspect I can fix it by going back to require, but I’d rather not if I don’t have to!

The module.importSync change is coming in reify@0.6.0, but that shouldn’t be the version used by babel-preset-meteor@6.24.2. It looks like code compiled with babel-preset-meteor@6.24.{0,1} may still be hanging around. Maybe try clearing any Babel caches (I think ~/.babel-cache is the default, but yours may be elsewhere)?

@benjamn I didn’t even know I had a babel cache :). But deleting it did not affect the problem. I’ll attempt a minimal repro and submit an issue on babel-preset-meteor unless you have other ideas or want me to post elsewhere.