Angular 16引入ng2-dragula后编译报错:polyfill相关文件未找到
解决Angular 16 + ng2-dragula的编译问题
核心问题:拼写不一致
你目前的问题大概率是文件名和配置路径的拼写错误:
- 你创建的文件是
polytills.ts(正确名称应为polyfills.ts),先把文件名改成polyfills.ts,放在src/根目录下,内容保留(window as any).global = window; - 你在
tsconfig.app.json的files数组里写的是src/polyfill.ts(少了末尾的s),改成src/polyfills.ts,和文件名、angular.json里的配置保持完全一致
执行清理与重启
修改完成后,先清理Angular缓存再启动项目,避免旧配置残留:
ng clean ng serve
备选方案:绕开polyfills文件
如果还是有问题,直接跳过polyfills文件的配置,在src/main.ts的最顶部添加以下代码:
(window as any).global = window;
Angular 16之后polyfills文件不再是强制要求,入口文件里的代码会在应用初始化前执行,完全能满足ng2-dragula的依赖需求,这样还能省掉配置polyfills的步骤。
额外检查点
如果TypeScript还是提示找不到文件,检查tsconfig.app.json的include数组是否包含src/**/*.ts——如果有这一项,TypeScript会自动编译src目录下所有ts文件,不需要手动把polyfills.ts加到files数组里,直接删掉那行配置即可。
内容的提问来源于stack exchange,提问作者Fizik26
相关产品推荐
相关产品推荐

