对 Deno 项目导入模块方式的困惑

问题描述 投票:0回答:1

据我所知,Deno 项目中有 4 种导入模块的方式:

  • deno.land/x
  • esm.sh
  • jsr
  • npm

我想优先顺序就像我上面列出的那样?我的意思是 deno 官方建议使用 deno.land 而不是 esm.sh,esm.sh 会是比 jsr 更好的选择。

假设我是对的,当我尝试安装 Hono 及其 CORS 中间件时,这是令人困惑的部分。

  • 我可以在 NPM 和 deno.land 上找到 Hono 框架,但通过搜索在此页面找不到 deno.land 上的 ExpressJS。包括第三方模块在内的 deno.land 的标准是什么?我认为 ExpressJS 在 NodeJS 社区中很流行。
  • 假设 esm.sh 是导入模块的第二佳方法,因为它们应该包含所有标准 ES 模块。但是,我找不到通过 esm.sh 导入 Hono CORS 中间件的适当方法。

这是官方网站关于如何在 deno.land 上介绍的方式展示

import { cors } from 'https://deno.land/x/hono/middleware.ts'. 

但是我在 esm.sh 上找不到该模块:

https://esm.sh/[email protected]/middleware 
  • JSR 的目的是什么?我在网站上找不到 Hono 和 ExpressJS。
node.js es6-modules deno jsr
1个回答
0
投票

我想优先顺序就像我上面列出的那样?

我认为这实际上是(括号中的原因):

  • npm(大多数 javascript 模块发布到的事实上的注册表)
  • esm.sh(默认使用npm作为注册表,但也支持GitHub和jsr)
  • jsr(npm 的超集)
  • deno.land(一些特定于 deno 的新事物)

我在 deno.land 上找不到 ExpressJS

您是否尝试在搜索框中输入“express”?查看此网址:https://deno.land/x?query=express。在那里您将看到https://deno.land/x/[电子邮件受保护]。但是,我可能不会使用它,而是使用

import express from "npm:[email protected]";
,如如何将 Express 与 Deno 结合使用中提到的。从 deno.land 导入在我的优先顺序中排在最后的还有一个原因。

我找不到通过 esm.sh 导入 Hono CORS 中间件的适当方法

如果您查看 hono 的 package.json 文件的

exports
字段,您将看到它们提供了您可以使用的 /cors
子路径导出。

import { cors } from 'https://esm.sh/[email protected]/cors'
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.