评论

如何解决“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  
点赞 32
收藏
评论

19 个评论

  • YouKnowEggs
    YouKnowEggs
    2022-11-29

    设置->项目设置->过滤无依赖文件 勾选去掉 就行了

    2022-11-29
    赞同 171
    回复 50
    • :)
      :)
      2023-01-06
      牛逼
      2023-01-06
      10
      回复
    • 默守归来
      默守归来
      2023-01-10
      谢谢大佬
      2023-01-10
      4
      回复
    • 1874
      1874
      2023-01-11
      谢谢你
      2023-01-11
      2
      回复
    • 周文清
      周文清
      2023-01-17
      2023-01-17
      40
      回复
    • A_张小宇
      A_张小宇
      2023-02-01
      牛逼
      2023-02-01
      回复
    查看更多(45)
  • 老怪兽
    老怪兽
    2023-01-09

    报错是因为微信开发者工具有缓存了,重启一下,我经常出现这种情况,上一秒还好好的下一秒就报错了,这个时候检查了自己代码没有问题的话,重启一下开发者工具就可以了,不要问我为什么,开发者工具自己有想法

    2023-01-09
    赞同 111
    回复 30
    • 占°
      占°
      2023-03-23
      搞死我了,瞎忙了2个小时,还是你行,点赞
      2023-03-23
      4
      回复
    • 丫头
      丫头
      2023-03-25
      给你点赞了呜呜
      2023-03-25
      2
      回复
    • 丫头
      丫头
      2023-03-25回复占°
      我也
      2023-03-25
      1
      回复
    • -
      -
      2023-04-04
      真就重启解决,一时间我还以为我写的代码有问题
      2023-04-04
      4
      回复
    • 觀·自在
      觀·自在
      2023-04-10
      看你行,你真行👍🏻
      2023-04-10
      回复
    查看更多(25)
  • 葛立波คิดถึง
    葛立波คิดถึง
    2023-06-05

    微信开发者工具版本:1.06.2303220

    设置 -> 项目设置 -> 本地设置 tab,上传时过滤无依赖文件,✔,来回点几次这个√,就好了。

    2023-06-05
    赞同 10
    回复
  • 不二mew
    不二mew
    2022-09-20

    所以(推荐)的那个方法到底怎么修改啊

    2022-09-20
    赞同 7
    回复 6
    • 🍀 奇了怪了怪
      🍀 奇了怪了怪
      2022-10-11
      同问
      2022-10-11
      回复
    • J.Wong
      J.Wong
      2022-10-19回复🍀 奇了怪了怪
      当然是自己检查自己的代码,比如你新增了一个组件,但是没有任何页面去引用它,就会报这个错,你只需要在某个页面引用就行了
      2022-10-19
      2
      回复
    • 岚枫
      岚枫
      2022-10-25回复J.Wong
      不行咯,在页面中引入了,但是也报这个错误
      2022-10-25
      1
      回复
    • lys
      lys
      2022-11-10
      解决了吗
      2022-11-10
      回复
    • 邢帥兵_
      邢帥兵_
      2022-11-19
      关闭过滤无依赖文件:project.config.json 中 settings 选项添加 ignoreDevUnusedFiles: false , ignoreUploadUnusedFiles: false,清除缓存,然后在编译就好了
      2022-11-19
      4
      回复
    查看更多(1)
  • brave
    brave
    2022-07-29

    2022-07-29
    赞同 5
    回复
  • 一秀--梵歌康养杭州分公司
    一秀--梵歌康养杭州分公司
    2022-11-25

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

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

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



    2022-11-25
    赞同 2
    回复
  • 昵称
    昵称
    09-23

    恕我直言,微信又在瞎搞。不可否认本意是好的,但是机制有点问题。明明引用了的东西,非要报错说没引用。。。这就太坑了

    09-23
    赞同 1
    回复
  • 啊?
    啊?
    2023-08-10

    清除缓存即可,用了一下ui组件就报这个也是离谱

    2023-08-10
    赞同 1
    回复
  • Star.
    Star.
    09-26

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

    09-26
    赞同
    回复
  • 赵文震
    赵文震
    09-11

    第一步,IDE来回切换几次 过滤无依赖文件 勾选,取消,最后取消,生成一个project.config.json文件

    第二步,在IDE中生成的文件project.config.json中,setting里添加配置项:ignoreDevUnusedFiles: false , ignoreUploadUnusedFiles: false,

    第三步,清除IDE缓存,关闭,打开,

    完成以上,基本奏效

    09-11
    赞同
    回复

正在加载...

登录 后发表内容