Babel.js 正在从CRA弹出以共享组件,但共享目录未更新

2cmtqfgy  于 2022-12-08  发布在  Babel
关注(0)|答案(1)|浏览(99)

我正在尝试从CRA 4应用程序中弹出,以便在monorepo中的多个模块之间实现简单的React组件共享:

|-react_project_a
|-react_project_b
|-shared

弹出之后,我所要做的就是将共享模块路径添加到webpack.config文件中的两个位置:

new ModuleScopePlugin(paths.appSrc, [
          paths.appPackageJson,
          paths.clientShared //*******here
          reactRefreshOverlayEntry,
        ]),

test: /\.(js|mjs|jsx|ts|tsx)$/,
              include: [paths.appSrc, paths.clientShared],
              loader: require.resolve('babel-loader')

工作很愉快,我甚至得到了热重载。唯一的问题是,只有主应用程序得到linted,所以共享模块的编译错误和警告只出现在浏览器开发人员工具控制台中,如下所示:

CRA使用的EslintWebpackPlugin不支持该插件的多个上下文。是否有替代方案?我正在尝试为我的开发人员提供尽可能接近CRA的体验。

x8goxv8g

x8goxv8g1#

由于我的目标是在CRA/react应用程序之间共享jsx组件,因此更简单的解决方案是在每个react项目中创建一个指向共享目录的符号链接:

|-react_project_a
  |-shared=>shared 
|-react_project_b
  |-shared=>shared
|-shared

并将其添加到webpack.config中。

resolve: {
             symlinks: false
            }

由于这是我所需要的唯一更改,我最终使用CRACO而不是弹出来处理覆盖。

相关问题