Mer*_*erc 5 git unit-testing node.js npm
我写了一个模块simpledblayer-mongo。该模块依赖于simpledblayer(它提供特定于 DB 的功能)。
我在进行单元测试时遇到问题。这里的问题是:
simpledblayer-mongo从simpledblayer(test.js文件)获取测试列表simpledblayer-mongo并确保子模块位于 node_modules 下。因此,包含所有测试的文件将位于 node_modules/simpledblayer/testssimpledblayer为devDependency. 没有真正的需要,因为无论如何都simpledblayer需要simpledblayer-mongo,作为直接依赖我遇到的问题是:用户可能会从 GIT(该模块将保证在 node_modules/simpledblayer 中)或 NPM(该模块可能被放置在 node_modules 中,或者它实际上可能被重复数据删除/等)获取模块,并且它可能在任何地方,真的)。
我需要加载simpledblayer'stest.js文件,无论它在哪里(只要它simpledblayer本身作为模块是必需的)。无论模块的路径是什么,有关从模块获取特定文件的任何提示?
谢谢!
梅尔。
您可以使用require.resolve()which 返回main您传入的模块名称的属性值(来自模块的 package.json)的绝对路径。从那里,您可以使用path/ fsmodules 来帮助获得相对于绝对路径的正确路径由 返回require.resolve()。
所以,如果simpledblayer有main: 'index.js'它的package.json,require.resolve('simpledbplayer')可能会返回类似/home/foo/project/node_modules/simpledblayer/index.js。
| 归档时间: |
|
| 查看次数: |
1253 次 |
| 最近记录: |