如何配置nextjs 9和ant design less的兼容性?

2023-12-03

升级后react,react-dom and nextjs发生此错误:

发生构建错误 /home/lenovo/.../node_modules/antd/lib/style/index.css:7 身体 { ^

语法错误:意外的标记 { 在 Module._compile (内部/modules/cjs/loader.js:720:22)

在 Object.Module._extensions..js (内部/模块/cjs/loader.js:788:10) 在Module.load(内部/模块/cjs/loader.js:643:32){ 类型:'语法错误', “$错误”:“$错误” } events.js:180 扔呃; // 未处理的“错误”事件 ^ 错误:写入 EPIPE ... 在 processTicksAndRejections (内部/process/task_queues.js:77:11) 发出“错误”事件: 在内部/child_process.js:810:39 在 processTicksAndRejections (内部/process/task_queues.js:75:11) { 错误号:'EPIPE', 代码:'EPIPE', 系统调用:'写' } 错误 命令失败,退出代码为 1。 信息访问https://yarnpkg.com/en/docs/cli/run有关此命令的文档。

这是我的next.config.js:

const nextConfig = {
    distDir: '_next',

    onDemandEntries: {
        maxInactiveAge: 1000 * 60 * 60,
        pagesBufferLength: 5,
    },

    webpack: (config, { dev }) => {
        !dev &&
        config.plugins.push(
            new BrotliPlugin({
                asset: '[path].br[query]',
                test: /\.js$|\.css$|\.html$/,
                threshold: 10240,
                minRatio: 0.7,
            }),
        );

        !dev &&
        config.plugins.push(
            new CompressionPlugin({
                filename: '[path].gz[query]',
                algorithm: 'gzip',
                test: /\.js$|\.css$|\.html$/,
                threshold: 10240,
                minRatio: 0.7,
            }),
        );
        return config;
    },
};

module.exports = withPlugins(
    [
        [withImages],
        [withCss],
        [
            withSass,
            {
                cssModules: true,
                cssLoaderOptions: {
                    localIdentName: '[path]___[local]___[hash:base64:5]',
                },
            },
        ],
        [withBundleAnalyzer],
    ],
    nextConfig,
);

你知道这有什么问题吗?

Edit

ant design 好像有兼容性问题,我发现一些来源但还是没有得到它!


基于 Next.js 存储库中的此示例https://github.com/zeit/next.js/tree/canary/examples/with-ant-design

要解决此问题,请将这些行添加到您的next.config.js:

const nextConfig = {
  webpack: (config, { isServer }) => {
    if (isServer) {
      const antStyles = /antd\/.*?\/style\/css.*?/;
      const origExternals = [...config.externals];
      config.externals = [ // eslint-disable-line
        (context, request, callback) => { // eslint-disable-line
          if (request.match(antStyles)) return callback();
          if (typeof origExternals[0] === 'function') {
            origExternals[0](context, request, callback);
          } else {
            callback();
          }
        },
        ...(typeof origExternals[0] === 'function' ? [] : origExternals),
      ];

      config.module.rules.unshift({
        test: antStyles,
        use: 'null-loader',
      });
    }
    return config;
  },
};

一个例子说明什么是next.config.js文件看起来像:

const withPlugins = require('next-compose-plugins');
const withCss = require('@zeit/next-css');
const withSass = require('@zeit/next-sass');

if (typeof require !== 'undefined') {
  require.extensions['.css'] = file => {};
}

const nextConfig = {
  webpack: (config, { isServer }) => {
    if (isServer) {
      const antStyles = /antd\/.*?\/style\/css.*?/;
      const origExternals = [...config.externals];
      config.externals = [ // eslint-disable-line
        (context, request, callback) => { // eslint-disable-line
          if (request.match(antStyles)) return callback();
          if (typeof origExternals[0] === 'function') {
            origExternals[0](context, request, callback);
          } else {
            callback();
          }
        },
        ...(typeof origExternals[0] === 'function' ? [] : origExternals),
      ];

      config.module.rules.unshift({
        test: antStyles,
        use: 'null-loader',
      });
    }
    return config;
  },
};

module.exports = withPlugins(
  [
    [withCss],
    [
      withSass,
      {
        cssModules: true,
        cssLoaderOptions: {
          localIdentName: '[path]___[local]___[hash:base64:5]',
        },
      },
    ],
  ],
  nextConfig,
);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何配置nextjs 9和ant design less的兼容性? 的相关文章

  • 在 React Native 中将 Props 传递到屏幕

    我已经开始学习 React Native 并且一如既往地从创建可重用组件开始 我了解了如何在创建自定义组件时传递和访问 props 我想在 React Native 中创建一个基本屏幕 它具有通用属性 并且我的应用程序中的所有屏幕都可以设置
  • Next.js 嵌套动态文件夹路由

    Update 由于 category slug index js 导致此错误getServerSideProps 我尝试做index js在产品文件夹下 它可以工作 这意味着它可以与 category slug 一起使用getServerS
  • React - 检查元素在 DOM 中是否可见

    我正在构建一个表单 用户需要回答一系列问题 单选按钮 然后才能进入下一个屏幕 对于字段验证 我使用 yup npm 包 和 redux 作为状态管理 对于一种特定场景 组合 会显示一个新屏幕 div 要求用户进行确认 复选框 然后用户才能继
  • 有没有办法让 React 为孩子自动定义“键”?

    我正在学习 React 我偶然发现了 动态儿童 的这个怪癖 带有代码示例的序言 Render Pass 1
  • 使react-leaflet能够离线使用

    我一直在使用反应传单 https github com PaulLeCam react leaflet图书馆 到目前为止运作良好 现在我希望网站预加载尽可能多的图块 以便网络应用程序 也是 PWA 可以在没有互联网的情况下使用 我找到了一些
  • 在vscode中使用reactjs报错

    在 Visual Studio 代码中使用 jsx 语法 Visual Studio代码报错 请帮我 谢谢 符号 例如 而不是这样做 return lt button className square gt TODO lt button g
  • 如何获取使用 .map 渲染的第一个元素的 ref?

    我需要在几行中显示视频 卡片 的缩略图 并重点关注第一个缩略图 我使用嵌套地图进行了显示 该代码基本上迭代视频数组并返回多行视频 我们如何关注第一个渲染的元素 我认为我们需要获得第一个要聚焦的元素的引用 但是我们如何在这里设置 ref 并在
  • Google 将自动完成功能放置在 React 组件中

    我正在尝试构建一个谷歌地图组件 谷歌地图 API v3 一切正常 但自动完成功能不行 这是我正在使用的代码 Google 地图组件 import React Component from react import ReactDOM from
  • React Native 反应导航 SafeArea 问题

    我更新了我的android项目 react navigation was 3 x 搬去5 x 决定实施必要的更改 但它不想工作 从反应导航页面复制了示例 但仍然显示相同的错误 有人知道问题出在哪里吗 当我用谷歌搜索一半的互联网时找不到解决方
  • 在 JSPdf 中嵌入二进制文件

    我在用着JsPDF https www npmjs com package jspdf将 html 内容导出到下载的 PDF 考虑以下示例 该示例获取一些 HTML 内容并将其输出到下载的 PDF 文件 使用JsPdf import Rea
  • Material-UI 4.8.1 API 更改 - 指定“组件”属性的新方法?

    Edit 这是 4 8 x 的打字错误 升级到 4 9 0 即可解决该问题 上版本4 8 0 以下代码编译并运行良好
  • 如何在 TypeScript React 项目中使用 eslint import 插件启用绝对路径别名?

    我已经安装了eslint plugin import到我的项目 我的目标是使用 import no relative parent imports error 设置禁止在我的项目中进行相对导入以增强可读性 但是 此设置会在我的项目中产生错误
  • JSX 支持哪些 ES6 功能?

    我在用着与 JSX 进行反应 with 反应工具 https www npmjs com package react tools将 JSX 代码编译为 JavaScript JSX 支持哪些 ES6 功能harmony选项已启用 感谢康加克
  • React-Router v5 History.push 不触发组件

    很抱歉朋友们又问这个问题了 我找到了解决这个问题的几个方法 但他们让我很困惑 我只是想问一个优雅的方法来做到这一点 正如你通过标题所理解的 我有一个关于反应路由的问题 让我解释 我有一个按钮 其名称是Login 单击按钮后 我执行了一些逻辑
  • React hooks 状态变量在重新渲染后未更新

    在下面的示例中 我有一个想要更新的元素 水果 数组 并使用更新后的数组执行其他操作 在本例中保存更新后的列表 我的理解是重新渲染状态将更新 但它不在这里 或者状态更新和我的操作之间存在延迟 In the addFruit功能我可以看到 Pe
  • 如何在 React JS 中根据键创建动态表?

    我正在尝试在 React JS 中创建一个动态表组件 该组件当前只有一个静态标头 其中包括最常见的结果键 有些结果还包含更多信息 例如电话号码 学位 如何根据键 值的存在动态地使用附加列扩展表 我应该与state并在存在时使其可见 或者我应
  • 删除旧版本的 create-react-app

    我想使用创建一个新的反应应用程序create react app脚本 我仍然安装了一个不再受支持的全局版本 因此我卸载了全局版本并尝试创建一个新版本 如下所示 npx create react app myapp 然后我得到了一个没有使用模
  • 诊断 RangeError:React KeyEscapeUtils 中超出了最大调用堆栈大小

    背景 我们的 Web 应用程序是使用官方的 React Redux 绑定用 React 和 Redux 编写的 此网络应用程序中使用的另一个主要库是PaperJS http paperjs org 我们最近将其转变为 Redux 应用程序
  • ‘state’未定义 no-undef

    我使用教程来学习 React 但我很快就陷入困境 在教程中 他们使用以下代码 import React Component from react class Counter extends Component state count 0 r
  • React-Redux - 未处理的拒绝(错误):操作必须是普通对象。使用自定义中间件进行异步操作

    我是 React Redux 的新手 我正在尝试调度一个操作 但它显示 未处理的拒绝 错误 操作必须是普通对象 使用自定义中间件进行异步操作 这是我的动作创建者 import axios from axios import GET CHAR

随机推荐

  • 确定性地创建和标记 EC2 实例

    我正在创建 3 个 EC2 实例 随后迭代并标记每个实例 有时 标签请求会失败 尽管实例后来看起来正在运行 这可能是一个时间问题吗 创建实例后我应该等待几秒钟再标记它吗 是否有确定的方法来等待它开始 更新20140512 AWS 同时添加了
  • 如何在 TypeScript 中将值传递给 Context Provider?

    我正在尝试将我的反应脚本转换为打字稿 但在定义类型时遇到问题 export const inputListContext createContext
  • 使用 Bcrypt 密码验证登录

    我有一个网站 我正在使用 bcrypt 编写注册 登录系统 我已成功将注册详细信息和哈希密码插入数据库中 我的问题是如何使用此哈希密码对用户进行身份验证 以下是我使用的代码 注册动作 font face arial font
  • 如何将数组传递给 Rails 中的 fields_for?

    我想用fields for在关联中的记录子集上 我有一个Month模型 其中has many payments 但在我看来 以我的形式 我只想拥有fields for其中一些付款 例如 fields for month payments l
  • 简单的 for 循环需要解释

    Since i i是缩写i i i 以下代码 for var i 0 i lt 10 i console log i i 应该输出 1 0 because 0 0 0 i 0 2 2 because 0 1 1 i 2 3 6 becaus
  • Xcode - 基于Target导入具有相同名称的不同头文件

    我有一个具有多个目标的项目 每个目标都构建非常相似的应用程序版本 但具有不同的图像资源和 plist 对于 plists images 来说这很好 但我使用 ShareKit 和 Appirater 框架 它们的配置带有 defines 的
  • iOS 正在将 28.0KB 的一些未知数据从我的应用程序备份到 iCloud

    我的应用程序因未将 不备份 属性设置为我使用的两个内部文件 并存储在 Documents 中 而被拒绝 我已经设置了该属性 并且它不再备份这些文件 11 5MB 但它仍在备份 28kb 的一些数据 我从 Documents 文件夹中删除了所
  • C 中的函数指针如何工作?

    我最近对 C 中的函数指针有了一些经验 因此 按照回答自己问题的传统 我决定对基础知识做一个小总结 供那些需要快速深入了解该主题的人使用 C 中的函数指针 让我们从一个基本函数开始指向 int addInt int n int m retu
  • 如何创建表 AWS Athena --> 映射 Json 数组?

    如何为 Json 数组格式创建表 Athena AWS JSON 格式示例 Tapes Status AVAILABLE Used 0 0 Barcode TEST1217F7 Gateway Test Report UsedGB 0 0
  • 将 ASP.NET MVC 5 从 .NET 4.5 降级到 4.0

    坐着面对一个有趣的问题 服务器不支持 NET 4 5 客户端没有提到这一点 但该应用程序是使用 ASP NET MVC 5 编写的 仅在 NET 4 5 上运行 所以降级dot net就意味着降级ASP NET MVC版本 我们遇到的许多错
  • 展开转场不触发

    我学习得很快 并为我的大部分应用程序奠定了基础 我有以下故事板 应用故事板 一切正常 例如 我在添加课程视图控制器上有一个展开转场 当您按下 保存 并且您返回到 您的课程 视图控制器时 该控制器会触发 当您在我的课程视图控制器上时 您可以选
  • Checkedtextview 滚动Listview后选中/取消选中

    我正在使用 viewHolder 和 getview 在 listvew 中开发 checktextview 填充检查 取消检查状态绑定从数据库运行良好 但是 如果我选中项目然后滚动列表视图 它将返回取消选中 这是我的自定义适配器代码 pu
  • SQLite 存储、检索和比较 DATETIME 字段

    我真的很难在 Objective C 中比较 SQLite 查询中的日期 这就是我正在做的事情 存储日期 这个文件告诉我使用下面指定的日期格式 但它似乎不正确 我尝试使用yyyy MM dd hh mm ss但也没有成功 NSDate to
  • 堆栈中的 Activity 过多会使应用程序变得非常慢

    最近我创建了一个社交应用程序 我没有使用fragment 项目快完成了 我有几个活动 例如用户配置文件 关注者 关注者活动 通常情况下它工作得很好 但是 如果用户单击 UserA UserProfile 活动 gt 然后单击 A 的关注者
  • MDN 示例中不必要使用 calc()?

    我刚刚读了 CSS 函数calc 在 Mozilla 的开发者网络中 第一个例子在本文使用以下 CSS 代码 banner position absolute left calc 40px width calc 100 80px borde
  • 受二次约束的线性目标最大化

    我有一篇论文中的编程公式 想给它一个解决特定问题的工具 作者将其描述为线性规划 LP 实例 但我不确定 公式有点像如下 max x1 x2 x3 s t x1 x3 x4 x5 lt 10 x2 x5 x3 x7 x1 x9 lt 10 我
  • Tensorflow 2.3:AttributeError:“Tensor”对象没有属性“numpy”

    我想加载借用的文本文件here 其中每一行代表一个 json 字符串 如下所示 overall 2 0 verified true reviewTime 02 4 2014 reviewerID A1M117A53LEI8 asin 750
  • Web请求标头的顺序重要吗?

    我正在发出 POST 请求以将图片上传到网站 页面中有一个FileUpload和一个input textBox 在fiddler中我发现页面正在使用Multipart Post请求模式发送一些数据 Content Disposition m
  • CloudWatch 警报:待确认

    我使用 CloudFormation 模板创建了一个 CW 警报 如下所示 MyAlarm Type AWS CloudWatch Alarm DependsOn CodePipelineSNSTopic Properties Action
  • 如何配置nextjs 9和ant design less的兼容性?

    升级后react react dom and nextjs发生此错误 发生构建错误 home lenovo node modules antd lib style index css 7 身体 语法错误 意外的标记 在 Module com