node为什么不支持import?

nodejs采用的是CommonJS的模块化规范,使用require引入模块;而import是ES6的模块化规范关键字。想要使用import,必须引入babel转义支持,通过babel进行编译,使其变成node的模块化代码。

node编程中最重要的思想之一就是模块,而正是这个思想,让JavaScript的大规模工程成为可能。

模块化编程在js界流行,也是基于此,随后在浏览器端,requirejs和seajs之类的工具包也出现了,可以说在对应规范下,require统治了ES6之前的所有模块化编程,即使现在,在ES6 module被完全实现之前,还是这样。

ES6标准发布后,module成为标准,标准的使用是以export指令导出接口,以import引入模块。

但因为一些历史原因,虽然Node.js已经实现了99%的ES6新特性,采用的却是CommonJS规范,使用require引入模块,使用module.exports导出接口。

在node中使用import/export的方法:

想要使用import,必须引入babel转义支持,通过babel进行编译,使其变成node的模块化代码。

我们可以在命令行中使用 babel-node 命令来进行编译,babel-node 命令不是独立安装,在 Babel 7.X 版本前,需要通过安装 babel-cli 包获得;在 Babel 7.X 版本,需要安装 @babel/core、@babel/cli 两个包。

说明:此处以 7.X 之前的版本举例,7.X 版本可去官网查找对应包的使用用例

安装必要的插件

全局安装 babel-cli

npm install babel-cli -g

安装 babel-preset-env

npm install babel-preset-env -D

然后原来是 node server.js,改为这样调用:babel-node --presets env server.js

需要注意的是如果只是为了 babel-node 这一个命令,安装 babel-cli 会加载安装很多资源和模块,出于性能考虑不推荐在生产环境使用。自己在开发调试的时候,可以鼓捣着玩玩

以上就是node为什么不支持import?的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » Node.js答疑