我有这个import_map. json文件:
{
"imports": {
"node_modules/" : "./node_modules"
}
}
在高层次上,我试图为.ts文件创建一些兼容性,包括Deno和Node。
我的导入如下所示:
import * as util from 'util';
import chalk from "node_modules/chalk";
当我运行这个程序时:
deno run --import-map='import_map.json' ./src/linked-queue.ts
我得到这个讨厌的错误:
Import map diagnostics:
- Invalid target address "file:///.../linked-queue/node_modules" for package specifier "node_modules/". Package address targets must end with "/".
error: Blocked by null entry for ""node_modules/""
at file:///.../linked-queue/src/linked-queue.ts:4:19
有人知道如何解决这个错误吗?
2条答案
按热度按时间1l5u6lss1#
在目标说明符后面加一个斜杠。参见说明和源代码。
fv2wmkja2#
本手册在以下三节中介绍了此方案:
我将展示一个可复制的示例,而不是从文档中复制粘贴所有内容(因为复制的一些片段确实不够;这是一个多方面的问题)-但是,请注意导入Map中的值,因为它们是通过阅读文档的所有三个链接部分得出的:
./import_map.json
:./deno.jsonc
:./src/linked-queue.ts
:使用定义的任务在终端中运行:
到目前为止,德诺的一切都很棒。
让我们检查一下相同的代码在Node.js中是否可以正常工作。需要添加以下文件以使用Node进行编译和运行,因为它不包括Deno的所有内置工具:
./package.json
:./tsconfig.json
:使用定义的npm脚本在终端中运行:
相同的模块源代码也适用于Node.js。