微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jest 文件转换,适用于 esm 模块或 commonjs

如何解决jest 文件转换,适用于 esm 模块或 commonjs

我有一个测试工具包,其中一个是 jest 文件转换器:

import path from 'path';

export const process = (src: string,filename: string): string => {
  return `module.exports = ${JSON.stringify(path.basename(filename))};`;
};

然后在 jest.config.ts

中设置
  transform: {
    // rest
    '^.+\\.csv$': path.join(__dirname,'./fileTransform.js'),

我正在尝试将包升级为 esm 模块,并且我希望转换在被 esm 或 commonjs 模块使用时工作,我尝试将代码重写为:

import path from 'path';

const createExport = (filename: string) =>
  `
    if (typeof module === 'object' && module) {
        Object.defineProperty(exports,"__esModule",{
          value: true
      });
        module.exports = ${JSON.stringify(path.basename(filename))}
    } else {
      Object.defineProperty(exports,{
          value: true
      });
      exports.default = ${JSON.stringify(path.basename(filename))};
    }
`
    .trim()
    .replace(/^\s{4}/g,'');

export const process = (src: string,filename: string): string => {
  const exp = createExport(filename);

  return exp;
};

但我收到此错误

TypeError:Jest:转换必须导出某些内容

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。