zsqk / news

每日新闻.
https://zsqk.github.io/news/
MIT License
10 stars 1 forks source link

备稿计划: 在 deno 中使用 jsdom #98

Open iugo opened 3 years ago

iugo commented 3 years ago

基础方法: https://github.com/denoland/deno/issues/3447#issuecomment-635597799

import jsdom from 'https://dev.jspm.io/npm:jsdom@16.6.0';

const { JSDOM } = jsdom as any;

但这种方法因为丢失了类型, 导致使用起来并不方便, 但起码有 JS 的功能了.

在 deno 中支持指定 .d.ts 文件, 参考 比如:

// @deno-types="https://cdn.jsdelivr.net/npm/@types/jsdom@16.2.11/index.d.ts"
import jsdom from 'https://dev.jspm.io/npm:jsdom@16.6.0';

但这里再次出现了 ts 与 deno 关于文件引用的分歧, 或者说 node 造成的分歧.

  1. deno 不支持(npm)包引用.
  2. deno 的文件引用相对目录必须增加 ./ 前缀.

所以不能使用已有的 @types/jsdom 类型声明了.


deno 曾经的计划: https://github.com/denoland/deno_std/issues/537

deno 的标准库曾经考虑过将 JSDOM 引入进来. 但后来放弃了, 可能是因为第三方库 jsdom 的基础功能可以通过 CDN 来使用.


deno 现在未关闭的 issue: https://github.com/denoland/manual/issues/45