首页 > 解决方案 > 使用 npm 和 ASP.NET 导入 js 模块的问题

问题描述

背景: 我在 Visual Studio 中的 Microsoft ASP.NET 项目上运行 OpenLayers 6。我正在按照 OpenLayers 6 Map Export 示例使用 html-to-image js 库将我的地图导出为 png。在示例中,该库由 Node 的包管理器 (npm) 安装和管理,并且使用 Javascript 导入语句访问这些​​函数。因为我不在 Node 中工作,所以我不得不让 npm 在我的 ASP.NET 项目中工作,所以我安装了 Mads Kristensen 的 Web 扩展包、Node 和 npm。使用 npm,我下载并安装了 html-to-image 库,该库创建了一个 nodes_modules 文件夹并将该库放入其中。该库包含许多 typescript 和 js 文件(如下所示)。

在此处输入图像描述

问题: 我似乎无法像 OpenLayers 示例所示的方式使用 javascript 导入语句访问库的函数。他们的示例显示您通过以下方式从模块中导入 toPng 函数:

import {toPng} from 'html-to-image';

当我尝试以这种方式导入模块时,出现加载资源失败 404 错误。接下来,我尝试使用相对路径导入: import { toPng } from '../../node_modules/html-to-image';我收到了加载资源失败 403(禁止)错误。但是,我能够访问 toPng 函数所在的单个 js 文件,import { toPng } from '../../lib/utils.js';但我收到一条错误消息,指出请求的模块不提供名为“toPng”的导出。我很确定库中的 js 文件不应该以这种方式单独访问。

我的主要问题是:如何以 Openlayers 示例显示的方式导入整个 html-to-image 模块?在我的 .NET 项目中,您似乎无法像在 Node 上那样通过引用模块文件夹来使用导入语句。所有 ES6 js 模块导入示例我都可以找到从单个 .js 文件导入的参考,所以我想知道如何访问具有多个 js 文件的模块。

是否有可能这个库是专门为仅使用 Node 项目而编写的?Node.js 和 .NET 项目之间访问 ES6 js 模块的方式有什么不同吗?

对此的任何见解将不胜感激!

标签: asp.netnode.jsnpmes6-modulesopenlayers-6

解决方案


推荐阅读