禁用Pixi加载程序的缓存警告

时间:2018-12-05 08:12:13

标签: javascript caching warnings pixi.js

在用PixiJS加载器加载多个精灵图集时,我得到以下警告:

Texture added to the cache with an id [SomeID] that already had an entry

既然有一些资产位于两个地图集中,我从中获得了这些资产的来源,但是是否有可能通过代码捕获,忽略或禁用此警告(而不仅仅是忽略控制台中的所有警告)?

解决方案

由于@Shawn的回答,我最终安装了preprocess-loader并将此代码添加到我的vue.config.js中:

module.exports = {
    chainWebpack: config => {
        config.module
            .rule('preprocess-loader')
            .test(/\.[js|ts]/)
            .include.add(/pixi\.js/).end()
            .use('preprocess-loader')
                .loader('preprocess-loader')
                .options({DEBUG:false})
                .end()
    }
}

同时拥有.test()部分和.include部分是多余的,但也不会对:)

1 个答案:

答案 0 :(得分:1)

警告仅记录在两个地方-

纹理- https://github.com/pixijs/pixi.js/blob/f913327e55897d50e37c5c3addee468aeb8a0cb8/src/core/textures/Texture.js#L498

基础纹理- https://github.com/pixijs/pixi.js/blob/f6f00047d6c523df2aa366cf3745eb831cec6ec5/src/core/textures/BaseTexture.js#L807

如果您在任一调用上方看了几行,就会看到看起来像预处理指令fir条件编译的样子,该指令仅在处于DEBUG模式时才应包含该代码。 例如:

// @if DEBUG
      <test for error and warn>
// @endif

在此处查看预处理器的示例:https://www.npmjs.com/package/preprocess

奇怪的是,我在他们的package.json中看不到该库,所以我不确定预处理器逻辑是否还在运行。基于package.json中的脚本以及代码中缺少其他预处理器的原因,我怀疑是否正在使用预处理器逻辑。

因此,如果您不想解决引起警告的资源冲突,则可以(i)启用条件编译,从而触发那些预处理程序if语句,然后以除调试模式以外的其他模式运行代码,或(ii)只需进入正在使用的代码并注释掉两个console.warn语句(即,我在开头链接的那两行)即可。

选项(ii)似乎容易一些。 :)

编辑/更新:

充实选项(i),并在信息中加上信息,阿诺:

以下是一些webpack加载程序(如果可以相信他们的文档)添加条件预处理:

https://www.npmjs.com/package/webpack-preprocessor-loader https://www.npmjs.com/package/preprocess-loader

根据vue-cli文档,您可以按照此链接中的说明添加新的加载器:

https://cli.vuejs.org/guide/webpack.html#adding-a-new-loader

示例:

// vue.config.js
module.exports = {
  chainWebpack: config => {
    // GraphQL Loader
    config.module
      .rule('graphql')
      .test(/\.graphql$/)
      .use('graphql-tag/loader')
        .loader('graphql-tag/loader')
        .end()
  }
}

似乎它是通过this library提供的命令式api生成webpack配置的。

因此,如果您真的需要消除这些警告,我建议(1)添加其中一种预处理器Webpack集成,然后(2)看看是否可以通过中所述的方法添加新的Webpack加载器文档。希望有帮助。