这提示一般是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