从@turf/meta导入coordEach函数报错,求排查方案
解决@turf/meta导入coordEach时的TypeError问题
这个坑我之前踩过!大概率是Turf.js版本差异导致的导出规则变化,咱们一步步来排查解决:
1. 先确认你的Turf.js版本
Turf.js v6和v7在模块导出方式上有明显区别,这是最常见的报错原因:
如果是v7.x版本:@turf/meta现在仅提供命名导出,没有默认导出。你需要用以下正确的导入方式:
import { coordEach } from '@turf/meta'; // 直接调用即可 coordEach(yourGeoJSON, (coord) => { // 处理坐标逻辑 });你之前的报错
__WEBPACK_IMPORTED_MODULE_0__turf_meta___default.a.coordEach,说明你尝试用了默认导入(比如import meta from '@turf/meta'然后调用meta.coordEach),但v7已经移除了默认导出,所以会提示“不是函数”。如果是v6.x版本:v6同时支持命名导出和默认导出,两种写法都可行:
// 写法1:命名导出(推荐) import { coordEach } from '@turf/meta'; // 写法2:默认导出 import meta from '@turf/meta'; meta.coordEach(yourGeoJSON, callback);
2. 排查其他可能的问题
如果版本对应但还是报错,可以试试这些操作:
- 删除
node_modules目录和package-lock.json/yarn.lock文件,重新执行npm install或yarn install,排除依赖安装异常的问题。 - 清除webpack缓存:如果是用webpack打包,可以删除项目根目录下的
.webpack缓存目录,或者启动dev server时加上--no-cache参数,避免缓存的旧代码干扰。 - 检查调用参数:确保
coordEach的第一个参数是合法的GeoJSON对象,第二个是回调函数,参数格式错误也可能触发类型错误。
内容的提问来源于stack exchange,提问作者Miha Šušteršič
相关产品推荐
相关产品推荐

