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.
Syntax and explanation require() statement basically reads a JavaScript file, executes it, and then proceeds to return the export object. require() statement not only allows to add built-in core NodeJS modules but also community-based and local modules.
NodeJS allows us to import CommonJS modules from ES Modules. If we would like to import our CommonJS class export example from above, our ES Module import would look like this: // index.
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
).
Probably for historical reasons. node.js and chrome (v8 engine) are older than ES6 standard.
On the other hand, see: How can I use an es6 import in node?
You may use import, too.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With