网上搜了一番,报错解释可能是:当前运行环境不支持使用import导入方式,可能是commonJS和esModule混用吧。但是为什么混用了依然没有头绪。所以又去找了一些模块化的资料来看,记录一下。至于这个问题的解决,先要留一个坑了。
模块化的发展过程
1.浏览器中运行不同的js件,需要进行环境隔离,因此需要进行文件的模块化。
2.requireJS诞生提供模块化方案。
3.node.js诞生,且本身也支持模块化:commonJS。nodejs是使用JavaScript语法的,因此符合ES规范。
4.node的运行环境不是浏览器,随后诞生了针对浏览器环境的模块化:esModule
5.如何在node环境(commonJS环境)中使用esModule?
(1)利用webpack等打包工具:将import语法转为ES5的语法,这样可以被node环境所运行
(2)将所有使用了import和export的文件后缀改为.mjs,在代码中可直接使用import语法。注意esModule和commonJS不可混用
(3)也可以在项目的package.json文件中加上下面的。设置之后目录里面的 JS 脚本,就被解释为ES6 模块。
{
"type": "module"
}
6.浏览器中使用esModule有2种方法:
(1)<script type='module' src='...'/>
(2) 使用打包工具转为ES5的语法
7.浏览器中使用commonJS语法: 使用打包工具