¿Deno tiene una forma de calzar/polyfill los módulos de Node.js?
Es decir, digamos que tengo un archivo mecanografiado que es parte de un proyecto de Node.js, y se parece a esto
import { performance } from 'perf_hooks'; function hello() { console.log(performance.performance.timeOrigin) console.log("Hello World") } export { hello }Quiero usar este módulo en un programa de denominación, así que hago algo como esto
import {hello} from './some-module.ts' function main() { hello() } Sin embargo, no puedo hacer esto porque no hay un módulo perf_hooks en Deno.
% deno run main.ts Check file:///private/tmp/main.ts error: TS2305 [ERROR]: Module '"deno:///none.d.ts"' has no exported member 'performance'. import { performance } from 'perf_hooks'; ~~~~~~~~~~~ at file:///private/tmp/some-module.ts:1:10 Me gustaría escribir mi propia versión de perf_hooks que implemente las propiedades y los métodos que necesito, y luego decirle a Deno Oye, siempre que alguien quiera usar mi módulo perf_hook .
¿Deno tiene algo integrado que me permita hacer esto? Si no es así, existe alguna técnica común de práctica/agrupación que la comunidad de Deno utiliza para hacer este tipo de cosas.
Puede usar https://deno.land/x/std/node . Proporciona algunos módulos integrados de Node. Para módulos externos, puede consultar https://esm.sh (la sintaxis es https://esm.sh/<npm-pkg> .
Y si desea usarlo como entorno NodeJS, puede hacer lo siguiente:
import { ... } from "module"; // Let's use NodeJS "module" module for thisA continuación, especifique un mapa de importación
{ "imports": { "module": "https://deno.land/std/node/module.ts" } } Ejecutar con la --import-map
$ deno run --import-map=/path/to/import_map.json your_file.ts