Str*_*der 5 javascript require package node.js
可以封装require自身及其子系统吗?
例如有一个模块:
src/deep/path/to/module.js
需要需要
src/another/module.js
代替:
require('./../../../another/module.js');
Run Code Online (Sandbox Code Playgroud)
可以吗:
require('<self>/another/module.js');
Run Code Online (Sandbox Code Playgroud)
?
例如,这在测试中可能很有用:测试单元可以引用其测试对象,而无需长的上下式路径。
我有两个考虑(但它们并不能完全满足这个问题):
如果包已经在node_modules文件夹中,它可以通过其规范名称(在其 中)引用自身package.json。
包可以在自己的node_modules文件夹中创建指向自身的符号链接(原文如此!)。还没有尝试过,在某些解决情况下可能会导致无限循环。
好吧,你可以把它缩短一点。./在这种情况下你不需要领先
require("../../../another/module.js");
Run Code Online (Sandbox Code Playgroud)
进一步删除尾随.js
require("../../../another/module");
Run Code Online (Sandbox Code Playgroud)
另一个答案是建议使用process.cwd()但要非常小心。require仅当应用程序是从同一目录初始化时,您的调用才有效。
不过听上去,4 个目录已经相当深了。您可能需要考虑将大型项目分割成更小的、单一用途的模块。我们需要更多有关该项目的信息才能知道这是否是正确的决定。
| 归档时间: |
|
| 查看次数: |
4648 次 |
| 最近记录: |