簡體   English   中英

Yarn Workspaces,工作區不發出錯誤或警告

[英]Yarn Workspaces, workspace does not emit errors or warnings

為了使用 yarn workspaces 和 craco 創建一個 monorepo,我遵循了以下帖子 它工作得很好,除了一件事:公共(組件)庫的錯誤/警告不會發送到控制台。 結構非常簡單:

monorepo
|-packages
  |-components
  |-fe

Fe 是使用組件庫的主要 webApp。 FE 正確發出所有警告,組件沒有。

如何讓共享組件發出警告/錯誤?

更新:

在此 repo 中重現的步驟: https://github.com/sofoklisM/my-monorepo.git

您需要更改的是 Create React App 使用的底層 ESLint Webpack 插件context選項 在這種情況下,我將 ESLint 的上下文更改為 monorepo 的根(紗線工作區根)。

這是一個更新的craco.config.js應該可以解決問題:

// craco.config.js
const path = require("path");
const { getLoader, loaderByName } = require("@craco/craco");
const { getPlugin, pluginByName } = require("@craco/craco/lib/webpack-plugins")
const absolutePath = path.join(__dirname, "../components");
module.exports = {
  webpack: {
    alias: {},
    plugins: [],
    configure: (webpackConfig, { env, paths }) => {
      const { isFound, match } = getLoader(
        webpackConfig,
        loaderByName("babel-loader")
      );
      if (isFound) {
        const include = Array.isArray(match.loader.include)
          ? match.loader.include
          : [match.loader.include];
        match.loader.include = include.concat([absolutePath]);
      }

      // Change context of ESLint Webpack Plugin
      const { match: eslintPlugin } = getPlugin(webpackConfig, pluginByName("ESLintWebpackPlugin"));
      eslintPlugin.options['context'] = path.join(__dirname, "../..");

      return webpackConfig;
    }
  }
};

我還在此處更新了您的復制回購協議的分支: https://github.com/ofhouse/stackoverflow-65447779

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM