import.named
: dynamic relative import of namespace objectimport(...)
: dynamic relative import of default exportimport.context
: loader-specific contextual information about this module- loader may want to expose canonicalized name
- loader may want to provide package-relative path info
- Node:
filename
,dirname
, maybemodule
andexports
Dynamically load a relative module when it's only needed rarely:
// lib/index.js
configButton.onclick = async function() {
// corresponds to: `import { readFile, writeFile } from 'fs';`
let { readFile, writeFile } = await import.named('fs');
// corresponds to: `import config from './config.js';`
let config = await import('./config.js');
...
};
Compute a Node project's root directory path:
import { resolve } from 'path';
let root = resolve(import.context.dirname, '..');
...
Proposed: s/import(/import.default(/ so that import.default and import.named refer to first-class functions which close over their scope.