javascript - 重新连接不导入本地目录

标签 javascript unit-testing

我在 Node.JS 12 中使用 Rewire,它在重新连接全局模块时工作正常,即 this.mysql = rewire('mysql') 工作正常。但是,当我执行 this.mod1 = rewire('./mod1') 时,它会出错,并显示 Cannot find module './mod1'

可能出了什么问题?请注意,我的文件位于 src/ 目录中,因此 node_modules/.. 不是我的文件目录。我尝试过 rewire('./src/mod1') 但它也不起作用。

最佳答案

rewire 的工作方式与 require 相同,因此我假设您从不同的目录调用该函数(重新连接)到 mod1 模块.

假设您有以下文件结构:

.
├── index.js
├── mod0.js
└── src
|   ├── mod1.js
|   └── dir
|       ├── mod2.js
|       └── anotherDir
|           └── mod3.js

当需要将 mod1 转换为 mod2 时,路径应该相对于 mod2:

// src/dir/mod2.js
const mod1 = rewire('../mod1') // NOT rewire('./mod1')
const mod0 = rewire('../../mod0')
const mod3 = rewire('./anotherDir/mod3')

关于javascript - 重新连接不导入本地目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60366919/

相关文章:

javascript - 如何在导航到另一个页面而不是刷新时清除 sessionStorage?

unit-testing - 函数式编程、SRP、可测试性以及具有静态和实例可变字段的类

c# - 什么相当于 C# 中的 JUnit?

c++ - 从单元测试 .EXE 项目中引用来自 VC++ .EXE 项目的类

c - 如何测试C中函数调用的顺序?

JUNIT 测试时出现 java.lang.StackOverflowError

javascript - 在测试(Lit)Web 组件之前如何等待异步连接回调完成?

javascript - 尝试从 onclick 更改为 onhover

javascript - 使用基于 lodash 键的回调来合并两个对象

javascript - 谷歌地图 API v3 : Remove other markers after route is calculated