前言
Deno 是由 Node.js 的创始人 Ryan Dahl 发起的一个面向现代应用的运行时环境,它与 Node.js 相比有许多新特性和优势。但是,Deno 上的生态系统还不够完整,有时候我们还需要使用到 npm 包中的一些库。在这种情况下,就需要使用到一个工具——denoify。
denoify 是什么?
denoify 实际上就是一个将 npm 包转换为 Deno 模块的工具。它会自动将 CommonJS 模块语法(require / exports)转换为 ES 模块语法(import / export),并通过 Deno 的标准库中的 fetch 函数将需要的 npm 包下载下来,最终实现使用 npm 包在 Deno 中的工作。
安装 denoify
globally:
npm i -g denoify
locally:
npm i denoify --save-dev
使用 denoify
下面是使用 denoify 的步骤:
在你的项目的根目录下创建一个名为
deps.ts
的文件,用于存放依赖。在
deps.ts
文件中,通过 import 语句导入需要使用的 npm 包。这里以使用 lodash 为例:
// deps.ts export { default as _ } from 'https://cdn.skypack.dev/lodash';
- 在你要使用该 npm 包的文件中,通过 import 语句导入
deps.ts
文件中的模块。这里以使用 lodash 中的 defer 函数为例:
// app.ts import { defer } from './deps.ts'; defer(() => console.log('deferred code'));
- 在命令行中运行 denoify 命令,对
deps.ts
文件进行转换,并将输出写入deps.ts.bundle
文件:
denoify deps.ts --bundle --output deps.ts.bundle
- 在运行你的代码时,将
deps.ts.bundle
文件作为入口文件:
deno run --allow-net app.ts --import-map=deps.ts.bundle
案例示例
// deps.ts export { default as uuid } from 'https://cdn.skypack.dev/uuid'; export { _ } from 'https://cdn.skypack.dev/lodash';
// app.ts import { uuid } from './deps.ts'; import { _ } from './deps.ts'; console.log(_.capitalize('hello world')); console.log(uuid.v4());
在命令行中运行:
denoify deps.ts --bundle --output deps.ts.bundle deno run --allow-net app.ts --import-map=deps.ts.bundle
输出:
Hello world 45745d77-9f5a-499e-9016-d78e543fff47
总结
使用 denoify 可以大大简化在 Deno 中使用 npm 包的流程,让你更加专注于功能的实现。它的使用非常简单,只需几个命令即可。希望这篇文章可以帮助你快速掌握 denoify 的使用,在 Deno 中更加便捷地使用 npm 包。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5eedb617b5cbfe1ea06114d8