adopted-ember-addons / ember-moment

MIT License
399 stars 122 forks source link

compatibility with Ember 2.14 #249

Closed jonnedeprez closed 7 years ago

jonnedeprez commented 7 years ago

When I create a new Ember project using ember-cli 2.14.1 and install ember-moment as the only addon, the app doesn't boot:

ember s

TypeError: ember-moment/utils/get-owner.js: Property object of MemberExpression expected node to be of a type ["Expression"] but instead got null at Object.validate (/home/jonne/Temp/test-upgrade/node_modules/babel-types/lib/definitions/index.js:109:13) at Object.validate (/home/jonne/Temp/test-upgrade/node_modules/babel-types/lib/index.js:505:9) at NodePath._replaceWith (/home/jonne/Temp/test-upgrade/node_modules/babel-traverse/lib/path/replacement.js:176:7) at NodePath._remove (/home/jonne/Temp/test-upgrade/node_modules/babel-traverse/lib/path/removal.js:58:10) at NodePath.remove (/home/jonne/Temp/test-upgrade/node_modules/babel-traverse/lib/path/removal.js:30:8) at PluginPass.CallExpression (/home/jonne/Temp/test-upgrade/node_modules/babel-plugin-transform-es2015-modules-amd/lib/index.js:42:12) at NodePath._call (/home/jonne/Temp/test-upgrade/node_modules/babel-traverse/lib/path/context.js:76:18) at NodePath.call (/home/jonne/Temp/test-upgrade/node_modules/babel-traverse/lib/path/context.js:48:17) at NodePath.visit (/home/jonne/Temp/test-upgrade/node_modules/babel-traverse/lib/path/context.js:105:12) at TraversalContext.visitQueue (/home/jonne/Temp/test-upgrade/node_modules/babel-traverse/lib/context.js:150:16)

The broccoli plugin was instantiated at: at BroccoliMergeTrees.Plugin (/home/jonne/Temp/test-upgrade/node_modules/broccoli-plugin/index.js:7:31) at new BroccoliMergeTrees (/home/jonne/Temp/test-upgrade/node_modules/ember-cli/node_modules/broccoli-merge-trees/index.js:16:10) at Function.BroccoliMergeTrees [as _upstreamMergeTrees] (/home/jonne/Temp/test-upgrade/node_modules/ember-cli/node_modules/broccoli-merge-trees/index.js:10:53) at mergeTrees (/home/jonne/Temp/test-upgrade/node_modules/ember-cli/lib/broccoli/merge-trees.js:85:33) at Class.treeFor (/home/jonne/Temp/test-upgrade/node_modules/ember-cli/lib/models/addon.js:521:30) at project.addons.map.addon (/home/jonne/Temp/test-upgrade/node_modules/ember-cli/lib/broccoli/ember-app.js:557:22) at Array.map (native) at EmberApp.addonTreesFor (/home/jonne/Temp/test-upgrade/node_modules/ember-cli/lib/broccoli/ember-app.js:555:32) at EmberApp._addonTree (/home/jonne/Temp/test-upgrade/node_modules/ember-cli/lib/broccoli/ember-app.js:956:29) at EmberApp._processedExternalTree (/home/jonne/Temp/test-upgrade/node_modules/ember-cli/lib/broccoli/ember-app.js:1009:25)

urbany commented 7 years ago

Hi, just upgraded to ember-moment@7.4.0 and I'm getting the same error. Alson on ember-cli@2.14.1

jonnedeprez commented 7 years ago

The issue seems to be that Babel can't transpile the require('ember-getowner-polyfill') in get-owner.js. I'm checking if I can make it work by disabling some babel plugins

quincyle commented 7 years ago

I'm seeing the same error with ember-cli: 2.12.3 and ember-moment: 7.4.0. Downgrade to ember-moment: 7.3.1 fixed the issue.

jonnedeprez commented 7 years ago

This require('ember-getowner-polyfill') line is a trick to get a conditional import of that module, which you can't do with ES6 import. But babel doesn't deal with it. For now, I'm going with a fork of this project. Does anyone have an idea for a real fix?

lolmaus commented 7 years ago

@jonnedeprez Thank you for your temporary solution. :bow:

rwjblue commented 7 years ago

This addon should be updated to depend on ember-getowner-polyfill@2.0.1 directly. The newer versions of that polyfill are a true polyfill, so there is no need to require a custom module like is done now. Once that is updated the aaddon/utils/get-owner.js file should be removed (or simplified to just export default Ember.getOwner).

jasonmit commented 7 years ago

Versioned as 7.4.1 - thanks everyone