代码之家  ›  专栏  ›  技术社区  ›  Jalal

ReferenceError:您试图在Jest环境被破坏后“import”一个文件:at loadcjsdedefault

  •  0
  • Jalal  · 技术社区  · 4 年前

    
    ReferenceError: You are trying to `import` a file after the Jest environment has been torn down.
    
          at loadCjsDefault (node_modules/@babel/core/lib/config/files/module-types.js:77:18)
          at loadCjsOrMjsDefault (node_modules/@babel/core/lib/config/files/module-types.js:49:16)
              at loadCjsOrMjsDefault.next (<anonymous>)
          at readConfigJS (node_modules/@babel/core/lib/config/files/configuration.js:190:47)
              at readConfigJS.next (<anonymous>)
    
    ReferenceError: You are trying to `import` a file after the Jest environment has been torn down.
    
          at _parser (node_modules/@babel/core/lib/parser/index.js:9:16)
          at parser (node_modules/@babel/core/lib/parser/index.js:54:18)
              at parser.next (<anonymous>)
          at normalizeFile (node_modules/@babel/core/lib/transformation/normalize-file.js:93:38)
              at normalizeFile.next (<anonymous>)
    
      ●  Cannot log after tests are done. Did you forget to wait for something async in your test?
        Attempted to log "TypeError: (0 , _parser(...).parse) is not a function
            at parser (D:\projects\js\published\builderz\node_modules\@babel\core\lib\parser\index.js:54:34)
            at parser.next (<anonymous>)
            at normalizeFile (D:\projects\js\published\builderz\node_modules\@babel\core\lib\transformation\normalize-file.js:93:38)
            at normalizeFile.next (<anonymous>)
            at run (D:\projects\js\published\builderz\node_modules\@babel\core\lib\transformation\index.js:31:50)
            at run.next (<anonymous>)
            at Object.transform (D:\projects\js\published\builderz\node_modules\@babel\core\lib\transform.js:27:41)
            at transform.next (<anonymous>)
            at evaluateSync (D:\projects\js\published\builderz\node_modules\gensync\index.js:244:28)
            at Object.sync (D:\projects\js\published\builderz\node_modules\gensync\index.js:84:14) {
          code: 'PLUGIN_ERROR',
          plugin: 'babel',
          hook: 'transform',
          id: 'D:\\projects\\js\\published\\builderz\\test\\samples\\pure\\src\\index.js',
          watchFiles: [
            'D:\\projects\\js\\published\\builderz\\test\\samples\\pure\\src\\index.js'
          ]
        }".
    

    这是测试文件

    import { resolve } from "path";
    import builderz from "../src";
    
    jest.useFakeTimers();
    
    describe("production", () => {
      it("test pure js", async () => {
        await builderz({
          isSilent: true,
          paths: [resolve(__dirname, "./samples/pure")]
        });
    
        // update it later of cource:
        expect(true).toEqual(true);
      });
    });
    

    以及babel.config文件

    module.exports = api => {
      api.cache(true);
      return {
        presets: [
          [
            "@babel/preset-env",
            {
              targets: {
                node: "current"
              }
            }
          ]
        ]
      };
    };
    
    
    0 回复  |  直到 4 年前
        1
  •  1
  •   Jalal    4 年前

    jest.config.js 改变 testEnvironment testEnvironment: "jsdom"

    PS:感谢Github中的这个答案 issue .

        2
  •  1
  •   Ken Ratanachai S. Vova K.    4 年前

    "testEnvironment": "jsdom" 进入之内 jest 键入包.json

    "jest": {
      "testEnvironment": "jsdom",
      "preset": "react-native",
      ...