我们在一个react typescript项目中使用了jest。如果有一个babel.config.js带有预设:[@babel/preset-env]测试运行成功。但是由于babel文件的存在,我们的next.js web项目不再编译。我如何设置这个babel.config.js只为开玩笑,而不是为下一个. js?
nfg76nw01#
请参见使巴别塔配置可识别jestJest会将process.env.NODE_ENV设置为'test',如果它没有被设置为其他值的话。你可以在你的配置中使用它来有条件地只设置Jest所需要的编译,例如。babel.config.js:
babel.config.js
module.exports = api => { const isTest = api.env('test'); // You can use isTest to determine what presets and plugins to use. return { // ... }; };
7d7tgy0s2#
@slideshowp2的另一个解决方案是使用一个单独的babelrc文件,该文件仅用于jest。例如,你可以将其命名为babel.config.testing.js,然后在jest.config.js文件中,告诉jest使用这个专用的babelrc文件:
babel.config.testing.js
jest.config.js
module.exports = { transform: { '\\.js$': ['babel-jest', { configFile: './Configuration/babel.config.testing.js' }] }, };
参考:https://github.com/facebook/jest/issues/3845#issuecomment-645298425
2条答案
按热度按时间nfg76nw01#
请参见使巴别塔配置可识别jest
Jest会将process.env.NODE_ENV设置为'test',如果它没有被设置为其他值的话。你可以在你的配置中使用它来有条件地只设置Jest所需要的编译,例如。
babel.config.js
:7d7tgy0s2#
@slideshowp2的另一个解决方案是使用一个单独的babelrc文件,该文件仅用于jest。
例如,你可以将其命名为
babel.config.testing.js
,然后在jest.config.js
文件中,告诉jest使用这个专用的babelrc文件:参考:https://github.com/facebook/jest/issues/3845#issuecomment-645298425