node.js - 在 nodeJS 中自动 require 模块
问题描述
我正在寻找 VS 代码扩展,或任何 NodeJS 功能,或一些关于如何自动为我需要特定模块的 JavaScript 想法。我有一个我自己创建的依赖项,它是一个用于将内容记录到控制台的简单实用程序,因此console.log(colors.red("Error: something went wrong"))
我可以简单地键入log.error("something went wrong")
. 我现在为我创建的每个文件重复自己,我必须为我创建的每个文件require("./../utils/log")
(路径一直从一个文件更改到另一个文件)。
是否有 VS 代码扩展,或任何 NodeJS 功能,或一些关于如何自动为我需要特定模块的 JavaScript 想法?
解决方案
nodejs 中模块化的好处很多。nodejs 中模块化的痛苦在于,您需要在模块开始时手动require()
或import
在该模块的每个依赖项中手动操作。习惯它。这就是你在 nodejs 中编程的方式。是的,当来自其他环境时感觉重复,但是每个模块都必须物理声明并加载自己的依赖项,以便充分利用 nodejs 模块化。从长远来看,这是值得的。只需在每个模块的开头键入依赖项即可。
一段时间后,您开始意识到每个模块本质上都在开始时声明了它所依赖的内容(通过加载其依赖项)。而且,一旦您开始编写模块测试,您就会真正意识到每个模块都是可独立测试的,因为它加载了自己的所有依赖项,并且在测试之前不需要配置一些更大的环境。当您第一次决定要将一个模块共享到另一个项目中时,您会非常感激它已经是独立的和可共享的。这样做是值得的。
我现在为我创建的每个文件重复自己,我必须为我创建的每个文件 require("./../utils/log") (路径一直从一个文件更改为另一个文件)。
是的,这就是 nodejs 中的工作方式。任何解决这个问题的系统(可能使用全局变量)都会破坏 nodejs 的模块化,然后你的模块将不会是独立的,不会声明自己的依赖项,不会独立测试,不会'独立共享,等等......因为他们在完成工作之前会对现有的一些外部环境产生隐藏的依赖。
当你放弃模块独立性时,一点点避免打字是不值得的。
仅供参考,当您第一次在 nodejs 中编程时,您的情绪(关于在多个模块中重复输入相同的内容)很常见。我们程序员受过训练,能够识别代码重复并将其视为应该解决和避免的问题。这只是一种情况,它不应该被删除,并且重复导致模块是自我描述的、独立的可测试和可共享的,并且不依赖于某些全局环境。来的好事比坏事要好得多。
推荐阅读
- snowflake-cloud-data-platform - 如何根据雪花中的返回值提交/回滚存储过程?
- ggplot2 - Getting the zoom ratio in ggsave with transparent background
- spring-boot - Netbeans 11,如何从 Springboot 应用程序生成战争文件
- excel - 需要比较两列并用一张表中的数据完成第三列
- javascript - 请帮助我在 javascript 中构建 reg ex
- node.js - 如何获取服务器的成员数?
- api - 无法访问在应用程序脚本中制作的 API 内容
- python - 如果 GridSearchCV 给出了一些排名为 1 的估计器,它将选择哪一个作为最佳估计器?
- javascript - React 的视差效果
- oracle - 安装oracle数据库速成版报错/u01/app/oracle/product/11.2.0/xe/bin/nls_lang.sh: No such file or directory