首页 > 解决方案 > 开玩笑没有从 babel.config.js 中选择最新的插件

问题描述

我有我自己的 babel 插件babel.config.js,当我更改插件时,jest 不会选择更新的插件代码并破坏测试。当我运行时 npx jest --no-cache,会获取更新的更改。

我不想--no-cache每次更新插件时都运行。

我很想知道 jest 在 npm artifactory 中更新时如何挑选最新的 babel 插件?

我已经提到了我的插件babel.config.js

module.exports = function (api) {
  api.cache(true);

  const presets = ["@babel/preset-env", "@babel/preset-react"];
  const plugins = [
    "@babel/plugin-syntax-dynamic-import",
    "@babel/plugin-proposal-class-properties",
    "@babel/plugin-transform-runtime",
    ["module:@babel-plugin-dynamic-import-override", {
      options: someOptions
    }]
  ];

  return {
    presets,
    plugins
  };
}

另外,我要对其进行哪些更改jest.config.js以使其选择最新的插件?

标签: jestjsbabeljsbabel-loaderbabel-jestbabel-plugin

解决方案


Jest 缓存 babel 配置以提高性能。这cacheDirectory: truebabel-loader在 webpack 中提供的相同。babel-loader还可以选择使用 爆破缓存cacheIdentifier,jest 目前还没有,将来也不打算添加它。

但是,可以通过扩展 babel-jest 来解决。详细讨论可以在这里阅读:https ://github.com/facebook/jest/issues/8932


推荐阅读