Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

why node uses require not import?

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.

like image 369
Holly Avatar asked Sep 29 '18 10:09

Holly


People also ask

Why we use require in node js not import?

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.

Does node use import?

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.


2 Answers

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).

like image 145
axm__ Avatar answered Sep 20 '22 16:09

axm__


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.

like image 37
teroi Avatar answered Sep 17 '22 16:09

teroi