当子功能文件夹中存在node_modules时,无法找到依赖关系

问题描述

有关使用Jest&RTL进行测试设置的问题。我正在创建一个NPM软件包,它将继续增长并包含其中的多个功能。我的目标是让我们的管道在根目录中运行测试。然后,src中的每个功能/模块将具有自己的具有依赖关系的package.json;即:反应。设置是这样的:

root
|
|- package.json
|- node_modules // for things like rollup & testing
|- tsconfig.json
|- rollup.config.js
|- jest.config.js
|__src
   |
   |- feature1
   |   |
   |   |- package.json
   |   |- node_modules
   |   |_ tsconfig.extended
   |
   |- feature2
      |
      |- package.json
      |- node_modules

当我对Feature1中的基本功能运行带有“单元测试”的笑话时,就可以了。但是,如果我尝试使用React运行测试,则会出错,因为根中未安装react:

无法从'node_modules/@testing-library/react/dist/pure.js'中找到模块'react'

出于测试目的,我尝试在根目录中安装react来解决它,但是现在我有2个版本的react,这是我不想要的。

问题:我是否可以更新jest.config文件以也在内部文件夹中查找模块?

module.exports = {
  moduleDirectories: ['node_modules','<rootDir>/src/Feature1'],// includes feature
  modulefileExtensions: ['ts','tsx','js','jsx'],moduleNameMapper: {
    '^Feature1/(.*)$': '<rootDir>/src/$1',},preset: 'ts-jest',roots: ['<rootDir>','<rootDir>/src/'],testEnvironment: 'jsdom',testPathIgnorePatterns: ['/node_modules/'],transform: {
    '^.+\\.tsx?$': 'ts-jest',testRegex: '(/__tests__/.*|(\\.|/)(test|spec))\\.tsx?$',verbose: true,};

我可以这样做吗,还是在子级别中包含package.json是一种不好的做法?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)