解决node环境下SyntaxError: Cannot use import statement outside a module的问题
文章目录
- 问题
- 解决方案
- 原因
- 参考
问题
最近在写JavaScript时,写了一个工具类,多个地方要用到,通过模块化导入,在node环境运行会报错:
SyntaxError: Cannot use import statement outside a module
解决方案
在警告信息Warning
的提示下,需要在 package.json
设置"type": "module"
,通过执行命令npm init -y
会自动生成 package.json
文件,如下:
{"name": "web","version": "0.0.1","keywords": [],"license": "ISC","author": "","scripts": {"build": "parcel build index.html","dev": "parcel index.html --open","start": "npm run build && npm run dev","test": "echo \"Error: no test specified\" && exit 1"},"devDependencies": {"parcel-bundler": "^1.12.4"},"main": "index.js",// 重点"type": "module"
}
生成文件后,并没有达到效果,还会报错:
意思是说export
模块需要声明default
,如单独导出一个变量:
export const a = 2
需要改成如下:
const a = 2
export default a
另外improt
导入模块时,需要设置全路径,包括文件后缀也要加上,不然会报ERR_MODULE_NOT_FOUND错:
// 正确
import a from "./index.js"// 错误
import a from "./index"
原因
CommonJS作为Node.js 的规范,一直沿用至今,现在很多类库还在用CommonJS ,而ES6的import/export出现相对晚很多,在Node13以上环境为了兼容ES6的特性,就需要创建package.json文件指明type类型为module。
参考
- https://cnodejs.org/topic/5e4be9ad1225c9423dcda5b9
- https://www.zhihu.com/question/56820346
- https://bobbyhadz.com/blog/javascript-requested-module-not-provide-export-named-default
解决node环境下SyntaxError: Cannot use import statement outside a module的问题相关推荐
- Uncaught SyntaxError: Cannot use import statement outside a module的解决方法
本地html文件中的script标签引入ES6的模块,直接在浏览器中打开该html文件,发现报错了:Uncaught SyntaxError: Cannot use import statement ...
- Uncaught SyntaxError: Cannot use import statement outside a module
1.错误描述 Uncaught SyntaxError: Cannot use import statement outside a module 2.错误原因 定义了一个JavaScript文件,声 ...
- 2021/06/27 Uncaught SyntaxError: Cannot use import statement outside a module
js中es6的语法并不能被浏览器所识别 ! [Deprecation] CSS cannot be loaded from `file:` URLs unless they end in a `.cs ...
- 浅谈node环境下的Sass以及gulp工具下的Sass
目录 一.Sass简介 二.Sass的解析器 1. node环境下的Sass解析器 2. gulp工具下的Sass解析器 三.Sass语法 1. 注释 2. 变量 3.嵌套 4.导入@import 5 ...
- 项目总结10:通过反射解决springboot环境下从redis取缓存进行转换时出现ClassCastException异常问题...
通过反射解决springboot环境下从redis取缓存进行转换时出现ClassCastException异常问题 关键字 springboot热部署 ClassCastException异常 反射 ...
- 电脑访问不了虚拟机ftp服务器,解决win环境下访问本机虚拟机中centos7 ftp服务器的问题...
inux搭建ftp服务器 1.安装软件: yum install vsftpd 2.修改配置文件vsftpd.conf: vim /etc/vsftpd/vsftpd.conf 把anonymous_ ...
- 解决nodejs环境下端口号被占用的方法
解决nodejs环境下端口号被占用的方法 参考文章: (1)解决nodejs环境下端口号被占用的方法 (2)https://www.cnblogs.com/guoliangstar/p/1014930 ...
- 解决Linux环境下Tomcat启动卡住问题
解决Linux环境下Tomcat启动卡住问题 参考文章: (1)解决Linux环境下Tomcat启动卡住问题 (2)https://www.cnblogs.com/0xcafedaddy/p/7193 ...
- 成功解决Windows10环境下运行Linux系统下的.sh文件
成功解决Windows10环境下运行Linux系统下的.sh文件 目录 解决问题 解决方法 解决问题 Windows10环境下运行Linux系统下的.sh文件 解决方法 .sh是shell scrip ...
- 解决Windows环境下Git Bash 不能输入中文的问题
解决Windows环境下Git Bash 不能输入中文的问题 打开Git Bash后,对窗口右键->Options->Text->Locale改为zh_CN,Character se ...
最新文章
- 如何完全卸载VS2010
- 异步编程的 async/await
- ubuntu 下 github 使用方法 以及异常修改
- 转:ffmpeg编码h264
- 屏幕录像专家 V2013 + 注册机(屏幕录像)
- TCP的request_sock与sock
- 实战案例:抽屉自动点赞与爬取汽车之家新闻
- 浏览器关闭垃圾的百度热点推荐------简洁就是美
- 苹果手机桌面找不到计算机,苹果手机设置图标不见了怎么办
- 三亚三姐,三亚海鲜的代言人
- 使用keil5中的RL_TCPNet中间件建立一个工程
- 永中word页码怎么从第二页开始_word转pdf软件有哪些?word转pdf软件怎么操作?
- 告别windows、拥抱linux,ThinkPad E485安装XUbuntu实录
- GDAL python教程基础篇(4)OGR拷贝方法
- Windows Server Core 2022 (一)安装
- 微软e5服务器,微软发布Office 365 E5计划
- 取消Pytorch警告
- 【Virus Analysis】插入Unicode控制字符-RLO
- 【MySQL】MySQL统计连续登录3天的用户
- SEO:百度和Google搜索优化区别
热门文章
- 前缀、中缀、后缀(逆波兰)表达式以及逆波兰表达式实现简单计算器
- 社交软件红包技术解密(十):手Q客户端针对2020年春节红包的技术实践
- RocketMQ消息存储学习
- Arduino基础入门篇(认识开发板和面包板)
- 简单创意的思维导图怎么画
- 16个最新创意品牌Logo设计 —— “形神”兼具的设计,方显高级和质感
- sun.misc.BASE64Encoder是内部专用 API, 可能会在未来发行版中删除
- 读名老中医之路笔记(三)
- 正睿OIday4总结
- ECUG Con 2018 早鸟票热卖中 | 大咖聚首 探索云计算下一个十年