Deno提供了一个节点兼容性库,该库将允许使用一些不使用未填充Node.js
API的 NPM软件包。您将可以
require通过使用
https://deno.land/std/node/module.ts
以下作品
deno 1.0.0
import { createRequire } from "https://deno.land/std/node/module.ts";const require = createRequire(import.meta.url);const esprima = require("esprima");const program = 'const answer = 42';console.log(esprima.tokenize(program))
上面的代码将使用
esprimafrom
node_modules/。
要运行它,您需要
--allow-read标记
deno run --allow-read esprima.js
您只能将其限制为
node_modules
deno run --allow-read=node_modules esprima.js
哪个输出:
[ { type: "Keyword", value: "const" }, { type: "Identifier", value: "answer" }, { type: "Punctuator", value: "=" }, { type: "Numeric", value: "42" }]
注意 :所使用的许多API
std/仍然不稳定,因此您可能需要使用
--unstableflag
运行它。
尽管由于整个项目已经使用Typescript编写,并且没有使用任何依赖关系,但是对于他们来说,将其适应Deno还是很容易的。他们需要做的就是
.ts在导入中使用扩展名。您也可以派生项目并进行更改。
// import { CommentHandler } from './comment-handler';import { CommentHandler } from './comment-handler.ts';// ...
完成后,您将可以执行以下 *** 作:
// Ideally they would issue a tagged release and you'll use that instead of masterimport esprima from 'https://raw.githubusercontent.com/jquery/esprima/master/src/esprima.ts';const program = 'const answer = 42';console.log(esprima.tokenize(program))
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)