我在 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/