如何排除ngx-extended-pdf-viewer的node_modules中指定子文件夹并精简语言列表
解决ngx-extended-pdf-viewer资源复制时排除指定文件夹并精简语言列表的问题
你遇到的问题核心在于Angular的assets配置里,ignore字段的路径是相对于input目录的,不是完整的绝对路径——之前用全路径所以不生效。下面是正确的配置方案,再加上额外的语言精简优化:
一、修正angular.json的资源复制配置
把ignore里的路径改成相对于input的相对路径,同时要匹配文件夹下的所有内容(避免只排除文件夹本身却漏掉内部文件):
{ "glob": "**/*", "input": "node_modules/ngx-extended-pdf-viewer/assets/", "ignore": [ "additional-locale/**/*", "inline-locale-files/**/*" ], "output": "/assets/" }
配置里的additional-locale/**/*表示跳过input目录下additional-locale文件夹内的所有文件和子文件夹,inline-locale-files/**/*同理。修改后Angular复制资源时就会自动排除这两个目录的内容。
二、进一步精简语言加载(推荐)
除了复制时排除多余文件,你还可以在模块导入阶段明确指定需要的语言,避免框架加载不必要的语言资源,进一步优化项目体积:
在你的根模块(比如app.module.ts)中,用withConfig方法配置语言列表:
import { NgxExtendedPdfViewerModule } from 'ngx-extended-pdf-viewer'; @NgModule({ declarations: [/* 你的组件列表 */], imports: [ NgxExtendedPdfViewerModule.withConfig({ defaultLocale: 'zh-CN', // 设置默认显示的语言 locales: [ { code: 'en', label: 'English' }, { code: 'zh-CN', label: '简体中文' } // 只添加你实际需要用到的语言条目 ] }) ], bootstrap: [/* 根组件 */] }) export class AppModule { }
这样配置后,组件只会加载你指定的语言包,配合前面的资源排除配置,就能最大程度精简语言相关的资源。
验证配置是否生效
修改完成后,你可以运行ng serve启动开发服务器,或者ng build --prod打包生产版本,然后检查对应的assets目录下是否还存在additional-locale和inline-locale-files文件夹——如果没有,就说明配置生效了。
内容的提问来源于stack exchange,提问作者imPK
相关产品推荐
相关产品推荐

