如何解决在NodeJS应用中加载npm包时如何解决'undefined Module'错误
我正在尝试在NodeJS
应用程序中加载名为'geojson2h3'的程序包。运行npm install geojson2h3
之后,我尝试按照Github
中给出的初始代码说明进行测试:
import geojson2h3 from 'geojson2h3';
const polygon = {
type: 'Feature',geometry: {
type: 'Polygon',coordinates: [
[
[-122.47485823276713,37.85878356045377],[-122.47504834087829,37.86196795698972],[-122.47845104316997,37.86010614563313],[-122.47485823276713,37.85878356045377]
]
]
}
};
const hexagons = geojson2h3.featureToH3Set(polygon,10);
// -> ['8a2830855047fff','8a2830855077fff','8a283085505ffff','8a283085506ffff']
const feature = geojson2h3.h3SetToFeature(hexagons);
// -> {type: 'Feature',properties: {},geometry: {type: 'Polygon',coordinates: [...]}}
当然,这会引发SyntaxError: Cannot use import statement outside a module
错误。然后,我尝试使用NodeJS require
这样的方法:const geojson2h3 = require('geojson2h3');
,替换了import
语句。这将引发Uncaught Error: undefinedModule
错误。该软件包显示在我的package.json
文件中,但是在我的node_modules
文件夹中看不到它。我假设这与问题有关。我在这里做错了什么?
*注意:我知道这是一个与GIS相关的软件包,但问题是一个通用的NodeJS软件包问题,而不是特定于GIS的软件包。
解决方法
这与项目的构建方式有关,基本上,它不会为nodejs导出可靠版本。
因此,要概括一下这个问题,h3-js的对等依赖关系似乎对es-module不友好,如下所示。
据我所知,最简单的解决方案是尝试使用其他开源软件,但是如果没有符合您期望的东西,我想您可以尝试修改h3-js。来自node_modules / h3-js.js,并在相关的github页面上推送了必要的更改。
,尝试:npm i
安装该软件包。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。