如何使用 jest 在反应中测试作为 .tgz 文件提供的 npm 包?

问题描述

我在 React 应用程序中使用作为 .tgz 文件提供的 npm 包。但是当我尝试使用 jest 测试一个反应组件时,它导入了这个包,我收到以下错误。有什么我必须在玩笑中配置的东西来测试这个吗?


    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:

    D:\application\node_modules\@clientio\rappid\build\package\index.ts:14
    export * from './rappid';
    ^^^^^^

    SyntaxError: Unexpected token 'export'


    > 4 | import * as joint from '@clientio/rappid/build/package';
        | ^

      at ScriptTransformer._transformAndBuildScript (node_modules/@jest/transform/build/ScriptTransformer.js:537:17)
      at ScriptTransformer.transform (node_modules/@jest/transform/build/ScriptTransformer.js:579:25)
      at Object.<anonymous> (src/../hmy-component.js:4:1)

我的 package.json 如下所示。

{
...
"dependencies": {
...
 "@clientio/rappid": "file:vendor/rappid-3.2.0.tgz"
...
}

我的组件如下所示。

...
import * as joint from '@clientio/rappid/build/package';
...

function MyComponent(props) {
  ...
}

解决方法

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

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

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