评论

如何解决“Error: xxx.js 已被代码依赖分析忽略,无法被其他模块引用”报错?

关于 “Error: xxx.js 已被代码依赖分析忽略,无法被其他模块引用”报错的来龙去脉和解决方法。

错误原因:

微信开发者工具从 1.05.2201210 版本开始,对小程序项目新增了无依赖文件过滤能力。

如果某个 js 文件被静态分析显示是无依赖文件,在实际运行时又被其他 js 文件 require 引用了,则会在工具模拟器中报错这个错误。

此时,如果你继续预览或者上传代码,则在真机运行环境中会报 xxx.js is not defined 的错误。

解决方式:

  1. 修改依赖引用的代码:可根据控制台中的【代码依赖分析异常】提示进行修改。(推荐)
  2. 关闭过滤无依赖文件:project.config.json 中 settings 选项添加 ignoreDevUnusedFiles: false , ignoreUploadUnusedFiles: false

详细分析:

微信开发者工具的无依赖文件过滤能力,是基于代码静态依赖分析的数据来实现的。

也就是会分析小程序项目中的代码内容,如果发现某个 js / wxml / wxss / json 文件没有被使用到,则会将其列为无依赖文件。

无依赖文件在模拟器运行时会被忽略,在上传时也不会打入代码包中,因此可以有效减少代码包大小。

但由于 js 代码的灵活性,代码静态依赖分析功能在某些情况下,无法准确分析出依赖引用关系(控制台中会有对应的 warning 提示),此时部分 js 文件会被误判为无依赖文件,导致报错。开发者需配合提示信息修改代码,才能继续使用此功能。

导致依赖异常的常见情况:

  1. 动态引用的情况,如 var a = 'somefile.js'; require(a);
  2. 将 require 函数赋值给其他变量的情况,如 var a = require; a('somefile.js');


最后一次编辑于  2022-07-04  
点赞 34
收藏
评论

29 个评论

  • 一秀
    一秀
    2022-11-25

    按提示操作,通过了编译。

    神奇的是,保存该文件时,加入的两个参数瞬间就没了,试了多次都是这样,一点保存,这两行瞬间消失!

    国产的东西,功能就是强大!



    2022-11-25
    赞同 2
    回复
  • 蜜雪冰蚕丝
    蜜雪冰蚕丝
    2022-09-19

    很有用设置之后就不报错了

    2022-09-19
    赞同 2
    回复
  • 光年
    光年
    星期三 20:10

    nt设定

    星期三 20:10
    赞同 1
    回复
  • 清颜
    清颜
    06-24

    纯缓存问题,重启,或在项目设置勾选一下不勾选一下,晃几次就好了,也是抽象,滞后性太高了

    06-24
    赞同 1
    回复
  • 朋朋
    朋朋
    1天前

    找到提示的文件 随便打个空格 让这个文件重选编辑一下就可以了

    1天前
    赞同
    回复
  • 林浅夏
    林浅夏
    03-18

    遇到这个问题清理下缓存,试了下有效果。

    03-18
    赞同
    回复
  • 作数
    作数
    02-14

    重启一次微信小程序解决了,啥也没改

    02-14
    赞同
    回复
  • 小嵩鼠🎵
    小嵩鼠🎵
    01-09

    实测,在切换分支过后会出现此问题,此时勾选或不勾选 项目设置中的 上传时过滤无依赖文件 是不起作用的,重开软件也不行

    解决方法,清缓存-全部清除 即可解决

    01-09
    赞同
    回复
  • 聚梦·晨晞
    聚梦·晨晞
    2024-11-08

    综上所述,算是bug,往尽快修复

    2024-11-08
    赞同
    回复
  • Star.
    Star.
    2024-09-26

    清除缓存之后就可以了,老是报错,明明代码一点儿问题没有

    2024-09-26
    赞同
    回复

正在加载...

登录 后发表内容