【问题标题】:angular-cli build gives error: leaflet.browser.print "is not a module"angular-cli build 给出错误:leaflet.browser.print “不是模块”
【发布时间】:2018-06-06 20:22:24
【问题描述】:

我有一个 Angular 4.1.1 应用程序,它成功地引入了 leaflet.js 以提供地图和地图层等。我正在尝试添加一个名为 browserPrint 的传单插件

我将 Leaflet 导入到这样的组件中:

import * as L from "leaflet";
import * as browserPrint from "../../../../assets/scripts/leaflet.browser.print.min";

Leaflet 的导入语句效果很好,我可以创建和显示地图。

当我尝试为 browserPrint 添加第二行时发生错误。

angular-cli 构建抛出错误:

错误 /src/app/services/driverLists/driver-lists-map/driverLists.map.component.ts (8,31): 文件 '/src/assets/scripts/leaflet.browser.print.min.js' 不是 一个模块。

我尝试过的:

  1. 我在 typings.d.ts 中添加了 declare var browserPrint: any;
  2. 我尝试将导入切换到:

    导入“../../../../assets/scripts/leaflet.browser.print.min”;

    但这只会引发大量错误并一起破坏地图

  3. 我尝试将导入切换到:

    将 * 作为 BrowserPrint 从“../../../../assets/scripts/leaflet.browser.print”导入;

    但错误变为找不到模块leaflet.browser.print

  4. 我还尝试更改文件路径以使用来自 Leaflet.browser.print 节点模块文件夹的文件。但是会产生同样的错误。

问题

谁能帮我弄清楚如何将传单浏览器打印插件添加到 Angular4+ 应用程序内的传单地图?

提前致谢。

【问题讨论】:

  • 您拥有的该脚本的缩小版本是否可能实际上并未导出任何对象?不太可能,但我想我会问。
  • 另外,只是一个风格的东西,但为什么你的服务文件夹中有一个组件? ://
  • 哈哈,服务描述了应用程序的一部分,客户提供现场安装的“服务”,并且他们被困在描述他们为自己的客户所做的事情的术语上。
  • 哎呀。我的错。我不应该假设,大声笑。无论如何,回到我的第一个问题
  • 因此文件不会导出任何内容,它们旨在增强现有的 leaflet.js 功能

标签: javascript angular typescript leaflet angular-cli


【解决方案1】:

我认为您想将该文件包含在 angular-cli.json 的“脚本”数组中。这应该将它包含在您的 webpack 输出中,并且您不需要实际导入它(正如您上面所说,该特定文件不会导出任何内容,因此您无论如何都无法导入它)。

这里的文档:

https://github.com/angular/angular-cli/wiki/stories-global-scripts

【讨论】:

  • 已经尝试过了,应该可以访问的 browserPrint 会阻止通过 cli 构建
  • 好吧,让我们尝试解决这个问题,因为我相信这是解决您的问题的正确方法,它只是不起作用。我觉得我之前遇到过同样的问题(构建时 webpack 找不到 angular.cli 脚本)。我会集思广益
猜你喜欢
  • 2021-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-08
  • 2018-12-28
  • 1970-01-01
  • 2023-03-24
  • 1970-01-01
相关资源
最近更新 更多