大家好,我是宝哥。
在日常的Node.js开发中,我们经常会遇到需要频繁重启服务、手动加载环境变量和希望输出更加直观的问题。这些问题虽小,却极大地影响了开发效率和体验。
今天宝哥分享的这篇文章就能很好地解决上述问题,一起来看看Node.js的三个隐藏但非常实用的功能,让我们的开发过程更加流畅和高效。
1. 代码变更自动重新加载
Node.js自2022年秋季以来增加了一个实验性功能,通过--watch
命令行标志,可以让Node.js在检测到文件系统变更时自动重启代码。这让我不再需要使用像nodemon这样的外部工具来监控文件变化。例如,运行以下命令:
node --watch watch1.js
watch1.js
的内容非常简单:
console.log('Watch me!', new Date());
当脚本运行后,如果对脚本进行修改,Node.js会自动重新启动脚本,并清除整个终端屏幕,给出有用的重启和完成消息。
此外,我还可以使用--watch-path
参数来监视其他文件的更改。例如,如果有一个脚本读取了notes.txt
文件:
import fs from 'fs';
let text = fs.readFileSync('./notes.txt', 'utf8');
console.log(`Contents of file:\n${text}`);
我可以通过以下命令监视notes.txt
文件的变化:
node --watch-path notes.txt --watch watch2.js
这样,无论是修改JavaScript脚本还是notes.txt
文件,都会自动重新加载。
2. 加载环境变量
在Node.js 20.6.0版本中,增加了一个--env-file
标志,允许直接从.env
文件加载环境变量,而不需要使用dotenv库。例如,如果有一个.env
文件:
MILKSHAKE=brings all the boys to the yard
和一个简单的Node.js程序:
console.log(process.env.MILKSHAKE);
可以使用以下命令运行程序:
node --env-file .env env1.js
Node.js v21.7.0进一步简化了这个过程,引入了process.loadEnvFile()
方法,使得加载.env
文件变得和使用命令行标志一样简单:
process.loadEnvFile();
console.log(process.env.MILKSHAKE);
3. 多彩的控制台输出
Node.js 21.7.0还增加了对控制台输出着色的支持。通过node:util
模块中的styleText
方法,可以很容易地向控制台输出添加颜色和样式。例如:
import { styleText } from 'node:util';
console.log(styleText('red', 'Danger, Danger, Will Robinson!'));
console.log(styleText('yellow', 'Nine Princes of Amber'));
console.log(styleText('green', 'All systems are nominal.'));
将输出:
这将使得输出更加醒目,便于区分不同类型的消息。此外,还可以使用背景颜色和“明亮”变体来进一步自定义输出的外观。
console.log(styleText('bgRed', 'Error, error Will Robinson!'));
console.log(styleText('redBright', 'Error, error Will Robinson!'));
将输出:
或者文字和背景组合:
console.log(styleText('bold', styleText('red','Error, error Will Robinson!')));
以上就是我最近发现的Node.js的几个实用特性,希望对你也有所帮助。如果你还有其他有趣的Node.js特性推荐,欢迎在评论区分享!
如果你觉得宝哥的分享还算实在,就给我点个赞,关注一波。分享出去,也许你的转发能给别人带来一点启发。
关注我,加星标,明天见!
购买上面小报童,送宝哥副业交流群,
送我公众号整理的所有资料,
包括前端电子书,面试资料,简历模板和副业资料等!
以上,如果本文对你有所启发,欢迎点“在看、点赞”支持下吧!