title: Webpack suddenly fails to compile due to "Module not found: Error: Can't resolve" errors
body: <p>As of yesterday afternoon, our Javascript unit test suite has started failing. None of the tests run and webpack reports a build failure after a string of Module not found errors. Here's our build stack:</p>
  
  <p>Node 6.11.5 (yes I know, very old)
  Karma 1.7.1
  Webpack 2.2.1
  React 15.6.2</p>
  
  <p>We run our unit tests using Karma. Most of the test suite involves React, so we use Webpack to build everything. To do this, we import our webpack config and then plug various values into the Karma webpack config.</p>
  
  <p>Building the scripts directly using Webpack works fine, but when we try to run <code>karma start</code> we get a lot of these errors:</p>
  
  <pre><code>ERROR in ./~/object.entries/implementation.js
  Module not found: Error: Can't resolve 'es-abstract/2019/RequireObjectCoercible' in '/jenkins/workspace/RFD/DCS/assets-build/build-js/node_modules/object.entries'
   @ ./~/object.entries/implementation.js 3:29-79
   @ ./~/object.entries/index.js
   @ ./~/enzyme/build/Utils.js
   @ ./~/enzyme/build/ReactWrapper.js
   @ ./~/enzyme/build/index.js
   @ ../sources/admin/js/pages/sponsored/organic_flyers/tests/DealerAddButton.spec.jsx
  
  ERROR in ./~/object.fromentries/implementation.js
  Module not found: Error: Can't resolve 'es-abstract/2019/AddEntriesFromIterable' in '/jenkins/workspace/RFD/DCS/assets-build/build-js/node_modules/object.fromentries'
   @ ./~/object.fromentries/implementation.js 3:29-79
   @ ./~/object.fromentries/index.js
   @ ./~/enzyme-adapter-utils/build/Utils.js
   @ ./~/enzyme-adapter-utils/build/index.js
   @ ./~/enzyme-adapter-react-15/build/ReactFifteenAdapter.js
   @ ./~/enzyme-adapter-react-15/build/index.js
   @ ../sources/admin/js/pages/sponsored/organic_flyers/tests/DealerAddButton.spec.jsx
  
  ERROR in ./~/object.fromentries/implementation.js
  Module not found: Error: Can't resolve 'es-abstract/2019/CreateDataPropertyOrThrow' in '/jenkins/workspace/RFD/DCS/assets-build/build-js/node_modules/object.fromentries'
   @ ./~/object.fromentries/implementation.js 4:32-85
   @ ./~/object.fromentries/index.js
   @ ./~/enzyme-adapter-utils/build/Utils.js
   @ ./~/enzyme-adapter-utils/build/index.js
   @ ./~/enzyme-adapter-react-15/build/ReactFifteenAdapter.js
   @ ./~/enzyme-adapter-react-15/build/index.js
   @ ../sources/admin/js/pages/sponsored/organic_flyers/tests/DealerAddButton.spec.jsx
  
  ERROR in ./~/object.fromentries/implementation.js
  Module not found: Error: Can't resolve 'es-abstract/2019/Get' in '/jenkins/workspace/RFD/DCS/assets-build/build-js/node_modules/object.fromentries'
   @ ./~/object.fromentries/implementation.js 5:10-41
   @ ./~/object.fromentries/index.js
   @ ./~/enzyme-adapter-utils/build/Utils.js
   @ ./~/enzyme-adapter-utils/build/index.js
   @ ./~/enzyme-adapter-react-15/build/ReactFifteenAdapter.js
   @ ./~/enzyme-adapter-react-15/build/index.js
   @ ../sources/admin/js/pages/sponsored/organic_flyers/tests/DealerAddButton.spec.jsx
  </code></pre>
  
  <p>All of these issues seem to be tied to <code>es-abstract</code>, which we noticed had a new release yesterday (1.17.0-next.1). This is right around the time everything began failing. That said, the package seems to have downloaded and installed correctly:</p>
  
  <pre><code>ubuntu@ip-172-17-108-178:/workspace/assets-build/build-js$ npm list es-abstract
  admin@0.0.1 /workspace/assets-build/build-js
  ├─┬ enzyme@3.10.0
  │ ├─┬ array.prototype.flat@1.2.3
  │ │ └── es-abstract@1.17.0-next.1
  │ ├─┬ object.entries@1.1.1
  │ │ └── es-abstract@1.17.0-next.1
  │ └─┬ string.prototype.trim@1.2.0
  │   └── es-abstract@1.16.3  deduped
  ├─┬ enzyme-adapter-react-15@1.4.1
  │ ├─┬ enzyme-adapter-utils@1.12.1
  │ │ ├─┬ airbnb-prop-types@2.15.0
  │ │ │ └─┬ array.prototype.find@2.1.0
  │ │ │   └── es-abstract@1.16.3  deduped
  │ │ └─┬ object.fromentries@2.0.2
  │ │   └── es-abstract@1.17.0-next.1
  │ └─┬ object.values@1.1.1
  │   └── es-abstract@1.17.0-next.1
  ├─┬ eslint-plugin-jsx-a11y@6.2.3
  │ └─┬ array-includes@3.1.0
  │   └── es-abstract@1.17.0-next.1
  └─┬ object.values@1.0.4
    └── es-abstract@1.16.3
  </code></pre>
  
  <p>And when I inspect the <code>node_modules</code> directory manually I can see all the files I would expect to see, based on a cursory examination of the es-abstract Github. I can't figure out why Webpack apparently can't see these files despite them being installed in the correct place. I also can't figure out why this would suddenly break as of yesterday, unless something was wrong with the es-abstract package. But if that's the case, no one's reported any issues to any of the affected projects (which include Enzyme and some of the ES shims) or to the es-abstract project itself. Also, looking at the CI builds for some of the affected projects, they all still seem to report passing tests.</p>
  
  <p>We're at a loss of what to do. I've tried wiping out <code>node_modules</code> and <code>npm install</code>ing from scratch, upgrading Node to the v8 LTS, downgrading Enzyme and the React adapter to try and pull in an older version of es-abstract (which doesn't work, their package.json files still ask for <code>^1.17.0-next.1</code>, which makes no sense to me given some of these releases are a year old). Nothing works.</p>