在用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
部分是多余的,但也不会对:)
答案 0 :(得分:1)
警告仅记录在两个地方-
如果您在任一调用上方看了几行,就会看到看起来像预处理指令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加载器文档。希望有帮助。