Typescript 从另一个Github repo忽略未转换的包时transformIgnorePatterns不工作

Typescript 从另一个Github repo忽略未转换的包时transformIgnorePatterns不工作,typescript,github,jestjs,babeljs,package.json,Typescript,Github,Jestjs,Babeljs,Package.json,我目前遇到了一个问题,一个jest测试正在中断,因为我正在我在package.json中创建的另一个repo中导入一个包,它中断了导入该包的测试 在freddies_testing_Playerd的package.json中,我链接了greeter,这是我创建的另一个回购协议,如下所示: "greeter": "git@github.com:Freddie-Pike/greeter.git#semver:0.0.1" “Greeter”是我设置的一个re

我目前遇到了一个问题,一个jest测试正在中断,因为我正在我在package.json中创建的另一个repo中导入一个包,它中断了导入该包的测试

在freddies_testing_Playerd的package.json中,我链接了greeter,这是我创建的另一个回购协议,如下所示:

"greeter": "git@github.com:Freddie-Pike/greeter.git#semver:0.0.1"
“Greeter”是我设置的一个repo,它使用TypeScript文档中的Greeter示例来显示在package.json中导入Github repo的示例。以下是迎宾类在迎宾回购协议中的内容:

// From the TypeScript docs: https://www.typescriptlang.org/docs/handbook/classes.html
class Greeter {
  greeting: string;
  constructor(message: string) {
    this.greeting = message;
  }
  greet() {
    return "Hello, " + this.greeting;
  }
}
export default Greeter;
不幸的是,在弗雷迪的操场上,一个玩笑测试因为迎宾回购而中断。名为GreeterUI的react组件(我想先强调一下,react组件没有损坏,因为我已经在实际浏览器中测试了该组件)导入greeter类,如下所示:

import React from "react";
import PropTypes from "prop-types";
import Greeter from "greeter";

function GreeterUI({ person }) {
  const greeter = new Greeter(person);
  return <div>{greeter.greet()}</div>;
}

GreeterUI.propTypes = {
  person: PropTypes.string,
};

export default GreeterUI;
这仍然会返回相同的错误,尽管下面是jest文档中的代码片段,其中说:

有时(特别是在React Native或TypeScript项目中)第三方模块以未翻译的形式发布。由于默认情况下不会转换节点_模块中的所有文件,Jest将无法理解这些模块中的代码,从而导致语法错误。为了克服这个问题,您可以使用transformIgnorePatterns来允许传输这样的模块。您将在React Native Guide中找到此用例的一个很好的示例

我在这个问题上做了一些研究,发现这是一个常见的错误,我尝试应用了几种我发现的解决方案,但没有成功。因此,在这个问题上的任何帮助都将不胜感激

链接:

  • ->使用greeter软件包的回购协议,位于js/components/GreeterUI/tests/GreeterUI.test.jsx中
  • ->导致测试失败的回购协议
  • TypeScript文档中的迎宾员示例:
我发现的有关此问题的Github问题:

import React from "react";
import { render, screen } from "@testing-library/react";
import GreeterUI from "../GreeterUI";

describe("GreeterUI", () => {
  it("renders greeting text.", () => {
    render(<GreeterUI person={"Fred"} />);
    const greeting = screen.queryByText(/hello, fred/i);
    expect(greeting).toBeInTheDocument();
  });
});
 FAIL  js/components/GreeterUI/__tests__/GreeterUI.test.jsx
  ● Test suite failed to run
    Jest encountered an unexpected token
    This usually means that you are trying to import a file which Jest cannot parse, e.g. it's not plain JavaScript.
    By default, if Jest sees a Babel config, it will use that to transform your files, ignoring "node_modules".
    Here's what you can do:
     • To have some of your "node_modules" files transformed, you can specify a custom "transformIgnorePatterns" in your config.
     • If you need a custom transformation specify a "transform" option in your config.
     • If you simply want to mock your non-JS modules (e.g. binary assets) you can stub them out with the "moduleNameMapper" config option.
    You'll find more details and examples of these config options in the docs:
    https://jestjs.io/docs/en/configuration.html
    Details:
    /Users/freddiepike/github_action_jest/node_modules/greeter/dist/index.js:1
    ({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){export { default } from "./Greeter";
                                                                                             ^^^^^^
    SyntaxError: Unexpected token 'export'
      1 | import React from "react";
      2 | import PropTypes from "prop-types";
    > 3 | import Greeter from "greeter";
        | ^
      4 | 
      5 | function GreeterUI({ person }) {
      6 |   const greeter = new Greeter(person);
      at Runtime.createScriptFromCode (node_modules/jest-runtime/build/index.js:1266:14)
      at Object.<anonymous> (js/components/GreeterUI/GreeterUI.jsx:3:1)
Test Suites: 1 failed, 2 passed, 3 total
Tests:       2 passed, 2 total
Snapshots:   0 total
Time:        9.077 s
Ran all test suites.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! github_action_jest@1.0.0 test: `jest --runInBand`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the github_action_jest@1.0.0 test script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/freddiepike/.npm/_logs/2020-11-16T22_05_57_035Z-debug.log
transformIgnorePatterns: ["<rootDir>/node_modules/(?!${greeter})"],