ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Angular8通过npm引入Mapbox GL 和 Ant L7

2021-06-10 21:01:49  阅读:291  来源: 互联网

标签:npm node l7 antv modules ts Ant L7 error


文章目录

缘起

Angular8引入Mapbox GL 和 Ant L7,之前都是将js API放在本地加载的。最近想尝试下通过npm加载,官网也提供了相应的指引。本以为很简单,没想到还是碰到了一些问题,为了便于自己和大家今后少走弯路,特此记录。

官网NPM安装指引

Mapbox GL:https://www.mapbox.com/install/js/
Ant L7:https://antv-l7.gitee.io/zh/docs/tutorial/quickstart

问题与解决办法

问题一:引入mapboxgl

如何通过require引入mapboxgl

解决办法:

  1. 通过npm安装"@types/node"包
npm install --save @types/node
  1. tsconfig.app.json文件的types属性中添加node
{
  ...
  "compilerOptions": {
    ...
    "types": ["node"]
  },
  ...
}

问题二:引入L7的对象

引入L7的对象时,出现了以下error

报错:
在这里插入图片描述

 ERROR in node_modules/@antv/l7-core/es/services/asset/IIconService.d.ts(1,8): error TS1259: Module '"/node_modules/eventemitter3/index"' can only be default-imported using the 'allowSyntheticDefaultImports' flag
    node_modules/@antv/l7-map/es/geo/transform.d.ts(9,9): error TS1086: An accessor cannot be declared in an ambient context.
    node_modules/@antv/l7-map/es/geo/transform.d.ts(10,9): error TS1086: An accessor cannot be declared in an ambient context.
    node_modules/@antv/l7-map/es/geo/transform.d.ts(11,9): error TS1086: An accessor cannot be declared in an ambient context.
    node_modules/@antv/l7-map/es/geo/transform.d.ts(12,9): error TS1086: An accessor cannot be declared in an ambient context.
    ...

解决办法:

tsconfig.json文件的compilerOptions对象中将allowSyntheticDefaultImports设为true

报错:

ERROR in node_modules/@antv/l7-core/es/services/asset/IIconService.d.ts:1:8 - error TS1259: Module '"/node_modules/eventemitter3/index"' can only be default-imported using the 'allowSyntheticDefaultImports' flag

1 import EventEmitter from 'eventemitter3';
         ~~~~~~~~~~~~

  node_modules/eventemitter3/index.d.ts:134:1
    134 export = EventEmitter;
        ~~~~~~~~~~~~~~~~~~~~~~
    This module is declared with using 'export =', and can only be used with a default import when using the 'allowSyntheticDefaultImports' flag.
node_modules/@antv/l7-map/es/geo/transform.d.ts:9:9 - error TS1086: An accessor cannot be declared in an ambient context.

9     get minZoom(): number;
          ~~~~~~~
node_modules/@antv/l7-map/es/geo/transform.d.ts:10:9 - error TS1086: An accessor cannot be declared in an ambient context.

解决办法:

tsconfig.json文件的compilerOptions对象中将skipLibCheck设为true

修改的内容:

{
  "compilerOptions": {
	...
    "allowSyntheticDefaultImports": true,
    "skipLibCheck": true
  }
}

好了,到了这里,问题就解决了。

喜欢的话,可以点赞、关注和分享!本博客将持续更新与WebGIS相关的内容,欢迎你与我一同成长!

标签:npm,node,l7,antv,modules,ts,Ant,L7,error
来源: https://blog.csdn.net/hequhecong10857/article/details/117734470

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有