关于新版node.js的import、require语句使用的时候踩的坑

        刚开始用node.js做一些与前端交互的脚本就遇到了问题,是关于CommonJS文件与ES6模块转换的冲突。

        以下是我的node.js 和 对应node.js自动安装的npm版本信息

        我在导入axios包的时候使用了以下的import语句

        结果就出现了以下的bug

         我在网上找了很多的资料,总结一下原因,大概就是自从ES6发布以后,require导入模块语句渐渐取代了原先使用CommonJS 和 AMD两种模块加载规范, 前者用于服务器,后者用于浏览器(按我的理解就是后端和前端,AMD是为了解决客户端加载页面模块的速度取决于服务端的同步问题而产生的异步通信规范),虽然node.js现在大部分都已经能通过一些手段同时支持import和require语句,但是那些例如babel、node --experimental-modules XX.mjs都没能帮我真正解决问题(也可能是我操作的问题)

        最后我发现其实不用那么复杂,只要把那句import语句换成require然后赋值给const常量即可解决问题。

const axios = require('npm/node_modules/axios');

        在终端运行一下

        终于成功了。。。。。。。就这个bug我找了三个小时 ,有种柳暗花明又一村的感觉啊害

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值