IIFE < CommonJS < ES6 modules

There’s one more difference between CommonJS modules and ES Modules that we didn’t cover above.

With CommonJS (require) , you can require a module anywhere, even conditionally.

if (pastTheFold === true) {  require('./parallax') }

Because ES Modules (import) are static, import statements must always be at the top level of a module. You can’t conditionally import them.

if (pastTheFold === true) 
import './parallax'
// "import' and 'export' may only appear at the top level" }