• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

webpack构建报错,Can‘t import the named export ‘SetArray‘ from non EcmaScript module

武飞扬头像
不吃西红柿w
帮助1

之前运行得好好的项目,在删除node_modules目录后,重新npm i,突然启动不起来了,提示Can't import the named export 'SetArray' from non EcmaScript module。

经过了解和排查,发现可能是因为某个依赖项升级后导致与其他依赖版本不匹配,解决方案如下:

webpack.config.js里添加一段代码:

  1.  
    module: {
  2.  
    rules: [
  3.  
    {
  4.  
    include: /node_modules/,
  5.  
    test: /\.mjs$/,
  6.  
    type: 'javascript/auto'
  7.  
    }
  8.  
    ]
  9.  
    }

然后正常npm start启动了。

感觉应该是某个依赖项升级后多了个mjs类型的文件,然后webpack没有相应的构建打包规则,需要配置转化一下。

知识点总结:

(1)关于webpack,javascript/auto去官网了解了一下,给的定义是这样的:

学新通

 意思就是采用自己定义的加载器进行解析,而不是用webpack默认的。

(2)通过这次问题,感觉还是需要一个package-lock.json或者npm-shrinkwrap.json用来限制版本,否则很容易出现npm/cnpm下载的时候某个依赖项自动更新版本导致版本不匹配。这边提供生成npm-shrinkwrap.json方式:

npm shrinkwrap

【注意】如果package-lock.json或者npm-shrinkwrap.json同时存在,那么优先更新匹配npm-shrinkwrap.json。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhghfjfk
系列文章
更多 icon
同类精品
更多 icon
继续加载