为什么节点使用不需要导入?
why node uses require not import?
我正在学习 node.js 并且想知道为什么它使用 require
语法而不是 React 使用的 import
语法。
即
const Validator = require("validator");
VS
import Validator from "validator";
我相信 import
是 es6,但我认为这不能解释为什么它没有在 node 中使用。
可能是历史原因。 node.js 和 chrome(v8 引擎)比 ES6 标准旧。
另一方面,参见:
你也可以使用 import。
import
和 default
是较新的 ES6 功能,节点尚未使用。 Node is actually already implementing the new features as experiment though:带有 --experimental-modules
标志且仅适用于以 .mjs
扩展名保存的文件。
像 babel make it possible to write modern, spec approved and /or experimental ECMAScript. In an ecosystem of bundlers like Webpack 这样的转译器和像 babel 这样的转译器,编写可维护的、面向未来的代码变得容易 javascript,同时代码仍然得到广泛支持,因为它被转换为 commonjs
(您看到的格式可被require
(老派import
)和module.exports
(老派export
)识别。
I believed import is es6 but I don't think that explains why it's not
used in node.
就像 NodeJS 实现其整个库的方式一样,其中包含大量仅支持基于回调的方法的异步函数。这样一想,你就会发现,NodeJS 框架迟早会支持 import
语法,并将所有这些异步函数升级为支持 promise-based。
我正在学习 node.js 并且想知道为什么它使用 require
语法而不是 React 使用的 import
语法。
即
const Validator = require("validator");
VS
import Validator from "validator";
我相信 import
是 es6,但我认为这不能解释为什么它没有在 node 中使用。
可能是历史原因。 node.js 和 chrome(v8 引擎)比 ES6 标准旧。
另一方面,参见:
你也可以使用 import。
import
和 default
是较新的 ES6 功能,节点尚未使用。 Node is actually already implementing the new features as experiment though:带有 --experimental-modules
标志且仅适用于以 .mjs
扩展名保存的文件。
像 babel make it possible to write modern, spec approved and /or experimental ECMAScript. In an ecosystem of bundlers like Webpack 这样的转译器和像 babel 这样的转译器,编写可维护的、面向未来的代码变得容易 javascript,同时代码仍然得到广泛支持,因为它被转换为 commonjs
(您看到的格式可被require
(老派import
)和module.exports
(老派export
)识别。
I believed import is es6 but I don't think that explains why it's not used in node.
就像 NodeJS 实现其整个库的方式一样,其中包含大量仅支持基于回调的方法的异步函数。这样一想,你就会发现,NodeJS 框架迟早会支持 import
语法,并将所有这些异步函数升级为支持 promise-based。