Angular项目导入proj4提示'defs'导出未找到该如何解决?
解决方案
- 修正导入语法
报错提示proj4仅提供default导出,不支持命名空间导入方式,将导入语句替换为:import proj4 from 'proj4'; - 调整TypeScript配置
打开项目根目录的tsconfig.json,确认compilerOptions下存在以下配置:
以上两个配置项用于兼容ES模块和CommonJS模块的默认导出逻辑,是Angular项目导入第三方CommonJS包的必备配置。{ "compilerOptions": { "esModuleInterop": true, "allowSyntheticDefaultImports": true } } - 修正依赖安装方式
你当前的类型声明包安装路径错误,且需要确认已安装proj4本体依赖,按以下顺序重新安装:- 安装proj4本体依赖:
npm install proj4 --save - 安装类型声明包到开发依赖:
npm install @types/proj4 --save-dev
- 安装proj4本体依赖:
- 备用兼容方案
完成以上步骤仍报错的话,可以在项目src目录下新增typings.d.ts声明文件,添加以下内容:
也可以直接使用CommonJS导入语法引入:declare module 'proj4' { export default any; }const proj4 = require('proj4');
配置完成后即可正常调用proj4.defs等核心方法,不会再报导出不存在的错误。
内容的提问来源于stack exchange,提问作者Piyush
相关产品推荐
相关产品推荐

