解决SyntaxError: Cannot use import statement outside a module问题

本来是想在node环境下测试Blob,Formate的,在导入相关js文件后,出现 Cannot use import statement outside a module错误,这里提供如下参考来解决问题:

  1. 使用commonJS语法绕过import,
let Blob = require('blob-polyfill/Blob');

能解决目前导入文件失败问题,但是意味着以后都不能使用import来导入,根本问题还没有解决,这当然不是我的作风,而后去查阅资料,这位老哥讲的很好总结如下:

  • 报错是因为node环境不支持ES6语法,我们可以安装babel-jest@babel/core@babel/preset-env来解决问题(这几个插件可以将es6代码转换成es5,使node环境能够识别,这里我选择的是@babel/preset-env进行安装)
  • 安装完后,在项目根木录创建babel.config.js文件:这个文件见名知意,是对babel进行配置的;(类似的还有webpack.config.js),
module.exports = {
    "presets": [
        ["@babel/preset-env",
            {
                "targets":
                    { "node": true }
            }
        ]
    ]
}
  • 一般来说package.json是没有配置type的,给它配上type:type:"module".到这里问题就解决了。
  • 最后,也是想起了第一次使用sass时,也要进行配置,才能将sass编译成css被环境识别(龙吟)。
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐