专栏名称: 全栈前端精选
内容为王,精选为则。从前端到全栈,定期分享前端、客户端、Node、面试、职场感悟等相关高质量文章。小白的大神养成记,你我共勉!
目录
相关文章推荐
51好读  ›  专栏  ›  全栈前端精选

什么,你连一个Node.js脚本都不会写!!!

全栈前端精选  · 公众号  ·  · 2024-06-03 09:33

正文

没有一个会的

在晨会上,我要求我的团队成员小林编写一个 Node.js 脚本,自动化地将组件库 components 文件夹中的组件按以下格式在根目录的 index.ts 文件中导出:

export { default as BasicTable } from './BasicTable';

他有些为难地看着我说:“这个Node.js没学过,不会,要不要让其他人做?”

我扫视了一圈,没有得到回应,于是我一个一个点名,结果没有一个人表示能够完成,都说不熟悉Node.js。我感到困惑,毕竟他们作为有五六年前端经验的团队成员,连一个简单的 Node.js 脚本都不会写!

不要过度神秘化 Node.js 脚本

有些人可能会误解 Node.js 脚本,认为它是用 Node.js 编写的。他们可能会觉得如果不懂 Node.js 的语法就无法编写 Node.js 脚本,感觉会写 Node.js 脚本就很神秘。实际上,Node.js 脚本只是在 Node.js 环境中运行的 JavaScript 脚本而已。

Node.js是一个基于Chrome V8引擎的JavaScript运行时环境,使得您可以在服务器端运行JavaScript代码。

在Node.js环境中,您可以编写JavaScript脚本来执行各种任务,比如文件操作、网络通信、数据处理等。这些脚本可以被称为Node.js脚本,因为它们是在Node.js环境中运行的JavaScript代码,仅此而已,没有什么神秘的。

在前端工程中,Node.js 脚本最常用于文件操作,比如读取、写入、删除、新建文件等等操作。

如何运行Node.js脚本

非常简单,只要你的电脑中有装 Node.js,随便找个地方创建一个 index.js 文件,然后在文件中写入以下代码:

console.log('我是一个Node.js脚本');

接着,打开命令行工具,并进入该文件所在的目录。最后,在命令行中输入 node ./index.js 并按下回车键。你将会在命令行工具中看到输出 我是一个Node.js脚本

image.png

如果你想将这个 Node.js 脚本作为 npm 脚本运行,可以将其添加到 package.json 文件中的 scripts 部分。假设你的脚本文件相对于 package.json 的路径是 ./scripts/index.js ,你可以添加以下内容到 package.json scripts 部分:

"scripts": {
  "my-script""node ./scripts/index.js"
}

这样,你就创建了一个名为 my-script 的自定义脚本,可以通过在命令行中输入 npm run my-script 来运行你的 Node.js 脚本。

如何引入第三方Node.js包

要实现晨会中所说的功能,首先得对工程中的文件进行操作,虽然可以直接使用 Node.js 内置的 fs 模块来实现,但是为了避免处理文件操作时出现的常见错误和边界情况,同时确保跨平台兼容性。还是选择 fs-extra 这个第三方 Node.js 包来进行文件操作,那我们该如何引入呢?

首先要看 Node.js 的版本,在 12 版本之前,只支持 require() 函数来引入。在 12 版本之后,就可以使用 ES6 的 import 语法来引入。但需要在 package.json 文件中设置 "type": "module" 。如果这样设置不方便,还可以将 Node.js 脚本的后缀改为 .mjs

我的 Node.js 版本是 16.14,所以采用 ES6 的 import 语法来引入。

首先,在组件工程的根目录下创建一个名为 scripts 的文件夹,并在其中创建一个名为 autoExport.mjs 的文件。

接着,在工程的 package.json 文件中的 scripts 部分添加以下内容:

"scripts": {
  "export""node ./scripts/autoExport.mjs"
}

autoExport.mjs 文件中添加如下代码,引入 fs-extra 这个第三方 Node.js 包。

import fs from 'fs-extra';

实现晨会上的功能

要实现晨会上的功能非常简单,只需要利用 fs-extra readdir writeFile 这个两个方法就可以实现。

  • readdir :读取目录下的文件名和文件夹名称。
  • writeFile :往文件中写入内容。






请到「今天看啥」查看全文