欢迎光临
我们一直在努力

SyntaxError: Cannot use import statement outside a module报错原因和解决方法

这提示一般是node下无法使用import。

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

说明:此方法不一定能完全解决您的问题,但总体思路是:node.js已经实现了99%的ES6新特性,采用的却是CommonJS

赞(25)
版权归原作者所有,如有侵权请告知。达维营-前端网 » SyntaxError: Cannot use import statement outside a module报错原因和解决方法

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址