I'm learning node.js and am wondering why it uses the require
syntax rather than the import
syntax which React uses.
i.e.
const Validator = require("validator");
VS
import Validator from "validator";
I believed import
is es6 but I don't think that explains why it's not used in node.
the import
and default
are newer ES6 features, not yet used by node. Node is actually already implementing the new features as experiment though: with the --experimental-modules
flag and only for files saved with .mjs
extension.
Transpilers like babel make it possible to write modern, spec approved and /or experimental ECMAScript. In an ecosystem of bundlers like Webpack with transpilers like babel, it becomes easy to write maintainable, future-proof javascript, while the code remains widely suported because it's transformed to commonjs
(the format you see recognizable byrequire
(the old-school import
) and module.exports
(the old-school export
).