Modules
AirBNB JavaScript Style Guide: Modules
10.1 Always use modules (import/export) over a non-standard module system.
10.2 Do not use wildcard imports.
10.6 In modules with a single export, prefer default export over named export.
Interpretation: multiple exports allowed
Confusing as hell
ESM vs CommonJS vs ES6
If using export default
use import var from module
:
export const foo = 42
export default 21;
If you want the 21
, use import bar from './input';
import barImport from './input';
console.log(barImport); // 21
const barRequire = require('./input');
console.log(barRequire);
/*
{
foo: 42,
default: 21,
}
*/
Notes
export const types = () => {}
is different from
export function types() { }
Clearing Confusing
Goals
CommonJs
module.exports = ...
var module = require('module')
AMD
define(['dependency1'], function(dependency1
Load synchronously
Asynchronous Module Definition
UMD
Universal Module Definition
ESM
Last updated
Was this helpful?