Next.js - 从节点模块的“dist”文件夹提供静态 JS 的最佳方式

2024-02-14

我正在使用一个使用 Tesseract (OCR) 从图像中读取文本的应用程序。

我想从 node_modules/tesseract.js/dist 获取一些 JS 文件,并使它们可以在浏览器中下载。

我知道我可以将文件复制到 ./public,next.js 将从那里静态提供它,但是如果我更新我的 Tesseract 版本,我可能也需要更新这些文件。那么维护就成了一个问题。

我的第一个想法是自定义我的 webpack 配置以将文件从 node_modules/tesseract.js/dist 复制到 ./public/tesseract (或类似的东西)。如果我更新 Tesseract,这将确保文件被重新复制。但我对 webpack 并不是特别精通,而且还没有弄清楚如何做到这一点。

我的第二个想法是“代理”JS 文件内容的检索,并将内容作为 next.js 中的“页面”提供(但这看起来超级 hacktastic)。

我觉得这不应该那么复杂……但我自己还没有弄清楚。

提前致谢!


是的同意,更新您的服务器以服务node_modules路径听起来有点危险。

我个人只会像您提到的那样使用 webpack 复制这些文件。

以下是 Next.js 上的文档如何设置自定义 webpack 配置 https://nextjs.org/docs/api-reference/next.config.js/custom-webpack-config.

next.config.js


const CopyPlugin = require("copy-webpack-plugin");

module.exports = {
  webpack: (config) => {
    // append the CopyPlugin to copy the file to your public dir
    config.plugins.push(
      new CopyPlugin({
        patterns: [
          { from: "node_modules/tesseract.js/dist", to: "public/" },
        ],
      }),
    )

    // Important: return the modified config
    return config
  }
};

我故意不包括public/tesseract路径,我不确定是否CopyPlugin如果构建时不存在,将自动生成缺失的目录。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Next.js - 从节点模块的“dist”文件夹提供静态 JS 的最佳方式 的相关文章

  • 此页面上的脚本导致 ie 运行缓慢

    问题就在标题中 IE 行为异常 并说有一个脚本运行缓慢 FF 和 Chrome 没有这个问题 我怎样才能找到问题所在 那个页面有很多JS 手动检查不是一个好主意 EDIT 这是我正在处理的一个项目的页面 但我需要一个工具来查找问题 End
  • 检测 Google 验证码的挑战窗口何时关闭

    我正在使用谷歌隐形验证码 有没有办法检测挑战窗口何时关闭 我所说的挑战窗口是指您必须选择一些图像进行验证的窗口 目前 我在按钮上放置了一个旋转器 一旦单击按钮 就会呈现验证码挑战 无法向用户提示另一个质询窗口 我以编程方式调用渲染函数 gr
  • 如何使用 Webpack 缩小 ES6 代码?

    我正在使用 webpack 并想要部署我的网站 如果我缩小并捆绑 JavaScript 代码 则会出现以下错误 解析错误 意外标记 名称 Button 这是我未捆绑的代码 use strict export class Button lt
  • React JS 服务器端问题 - 找不到窗口

    你好 我正在尝试在我的reactJS项目中使用react rte 我有服务器端渲染 每次我想使用这个包时 我都会得到 return msie 6 9 b test window navigator userAgent toLowerCase
  • 如何在 select 和 option 标签中添加 JSON 数据?

    我有这个html代码 div class searchfilter div class searchwrapper div div
  • 为什么这行带有“await”的代码会触发微任务队列处理?

    以下引用是我理解微任务队列处理的主要参考 当 JS 堆栈清空时 就会处理微任务 承诺使用 杰克 阿奇博尔德 https twitter com jaffathecake status 954653170986311680 这对我来说没有意义
  • C# 和 Javascript SHA256 哈希的代码示例

    我有一个在服务器端运行的 C 算法 它对 Base64 编码的字符串进行哈希处理 byte salt Convert FromBase64String serverSalt Step 1 SHA256Managed sha256 new S
  • 将 Firebase FCM 添加到 ReactJS 应用程序

    我正在尝试向我的 ReactJS 应用程序中的用户发送推送通知 我已添加 firebase 请求用户通知权限 这正在发挥作用 但现在我想注册设备令牌 但这给了我错误 消息传递 我们无法注册默认的 Service Worker 无法注册 Se
  • 模板中带有 ng-if 的 angularjs 指令

    我正在构建一个在模板内使用 ng if 的指令 奇怪的是 提供给链接函数的元素没有扩展ng if代码 它只是ng if的注释行 经过一番尝试 我发现通过将链接代码包装在 timeout 中似乎可以使其正常工作 但我想知道这是否不是正确的处理
  • 如何将 Vue.js 作用域样式应用于通过视图路由器加载的组件?

    如何将 Vue js 作用域样式应用于通过以下方式加载的组件
  • 如何使用新的analytics.js跟踪多个帐户?

    我需要使用 Google 的新的analytics js 跟踪一个页面上两个帐户的综合浏览量 有大量教程和示例如何使用较旧的 ga js 进行操作 但我发现的只是这个分析文档页面 https developers google com an
  • Web组件中嵌套槽的内容不可见

    我有一个 Web 组件 它应该接受任意元素来包装其内容 虽然我可以在 Chrome 开发工具中看到插槽已正确分配 但 DOM 中什么也没有出现 以前有人见过这个问题吗 定义 class ExampleParent extends HTMLE
  • 摩纳哥:如何添加内联自动完成/代码建议?

    我找不到任何有关如何添加内联自动完成功能的示例 如下图所示 有人可以指导我如何在摩纳哥做到这一点吗 这可以在 v1 66 中启用 现在在 Insiders 中 The editor quickSuggestions设置现在接受内联为 配置值
  • 我可以使用 ASP.NET WebForms 母版页在每个内容页中包含不同的 javascript/css 文件吗?

    我有几个使用相同母版页的内容页 它们并不都需要包含在相同的 javascript 和 css 文件中 tag 是否可以更改内容来自内容页面的标签 确实如此 但我建议采取一些不同的做法 我在关闭正文标签的正上方放置了一个内容占位符 然后我填充
  • 使用socket.io进行用户身份验证

    我已经红色了这个教程 http howtonode org socket io auth http howtonode org socket io auth 它展示了如何使用express和socket io对用户进行身份验证 但是有没有一
  • ThreeJS 中阴影的奇怪行为

    所以我有一个 ThreeJS 场景 并且添加了一些球体 多材质 我还添加了定向光 this light new THREE DirectionalLight 0xFFFFFF 1 this light position set 2 10 2
  • Jwt 签名和前端登录身份验证

    我有这个特殊的 jwt sign 函数 Backend const token jwt sign id user id process env TOKEN SECRET expiresIn 1m res header auth token
  • d3.event.translate 在触摸设备的缩放上包含 NaN

    我使用 d3 为我的 svg 编写了一个自定义缩放函数 如下所示 Zoom behavior function myzoom xpos d3 event translate 0 ypos d3 event translate 1 vis a
  • ng-include 和 ng-view 不同时加载

    下面是我的应用程序的结构 很简单 页眉和页脚是非常小的文件 而主页上的 ng view 要大得多 当我进入该页面时 我注意到了这一点 首先加载两个 ng include 然后 ng view 出现 页脚被推到底部 页脚闪烁大约 0 1 秒
  • 如何映射轮播的子项数组?

    我正在尝试将 Carousel 组件包装在映射对象数组周围作为组件的子级 目前我只能让映射创建映射对象的 1 个子对象 轮播需要像这样

随机推荐

  • Verilog 中的“net”代表什么?

    我刚刚开始学习Verilog 据我了解 Verilog有net数据类型 什么是net代表 网络就是这样一种数据类型 您不使用它来存储值 它们代表物理连接 您可以将线路视为一种网络数据类型 你可以去网上看看更多here http www ee
  • 使用 KernelClient API 在 ipython 内核中执行代码

    我有一个现有的 ipython 内核 带有一个通信文件 path comm file json 我想使用内核客户端 API 执行该内核中的代码 实际上我并不挑剔 任何方法都可以 我明白这是从 jupyter 做事情的最好方法文档 https
  • 从事神经网络项目[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 神经网络是否需要仅采用二进制训练集
  • Trello 如何如此快速地显示历史记录?

    Trello 显示自论坛成立以来任何用户所做的一切的历史日志 同样 如果您单击特定的卡片 它会显示任何人与该卡片相关的任何操作的历史记录 跟踪无限期保留的每个更改 添加 删除必须收集大量数据 并且还可能成为写入历史记录日志的瓶颈 假设它立即
  • 如何在提交之前做一些事情?

    我有一个表单 其中有一个提交表单的按钮 我需要在提交发生之前做一些事情 我尝试做onClick在该按钮上 但它发生在提交之后 我无法共享代码 但一般来说 我应该在 jQuery 或 JS 中做什么来处理这个问题 如果您有这样的表格
  • c - strcmp 对于相等的字符串不返回 0

    因此 我尝试广泛寻找解决方案 但只能真正找到其中一个字符串缺少新行或空字节的帖子 我相当确定这里的情况并非如此 我正在使用以下函数将单词与包含单词列表的文件进行比较 其中每行一个单词 函数中的字典 这是代码 int isWord char
  • 在 DataGridView 的列中搜索值

    我希望用户能够在 DataGridView dgv 的列中搜索数字 dgv 可以保持许多记录 每条记录都有一个项目编号 因此 我希望用户能够在 项目编号 列中搜索项目编号 我的列是 ProjectID 不可见 图片 无标题文本 项目编号 项
  • 如何在标准输出中禁用 spring boot 徽标?

    有没有办法禁用可爱但非常明显的 ASCII Spring boot 徽标 Spring Boot v1 1 8 RELEASE 每次运行 Spring Boot 应用程序时都会
  • MySQL中使用clearDB自动加1

    我正在使用带有clearDB 的Windows Azure 当前数据库自增值为10 我希望它为1 我尝试在 PHPMyAdmin 中运行这些命令 1 set global auto increment increment 1 set glo
  • 在 Thread + Queue 或 ThreadPoolExecutor 上使用 async-await?

    我从未使用过async await语法 但我经常需要发出 HTTP S 请求并解析响应 同时等待未来的响应 为了完成这项任务 我目前使用线程池执行器 https docs python org 3 library concurrent fu
  • 从另一个类调用委托方法

    我无法弄清楚如何在 C 中对跨类的委托方法调用进行编程 我来自 Objective C 的世界 这可能会让我感到困惑 在 Objective C 中 我可以在子类中分配一个委托对象作为父类 即 childViewcontroller del
  • 自定义 asp.net 身份存储 - 为什么 HttpContext.Current 有时为空

    我按照示例集实现了 ASP NET Identity 的自定义用户存储here http www jamessturtevant com posts ASPNET Identity2 0 Custom Database 一切正常 除了这个
  • 扩展应用程序还是使用单例?

    我有一个 android 项目 其中有一个或多个活动需要访问的不同对象 现在我正在考虑创建一个子类Application然而根据文档 http developer android com reference android app Appl
  • 通过单元格的值动态设置 Excel 图表数据系列范围

    我在 Excel 中有一个简单的图表 其中绘制了 2 个数据系列 引用了第 3 个数据系列 我想要做的是根据单元格中的数字更改第一个数据系列之一的范围 例如 如果数字为 1 并且数据系列位于 A 列中 则图表的范围应为A1 A100 现在
  • 在 Yii2 中一次保存多个模型

    我有两个模型 Users and Students 我想同时将数据插入到这些表中 首先 我将数据保存到Students模型 然后进入Users楷模 现在 如果数据没有成功插入到Users模型已经有一个条目Students桌子 我想要的是仅当
  • Akka Actor 带有 TimeoutException 的“询问”和“等待”

    我正在使用 Scala 和 Akka 建模一个简单的 P2P class Node extends Peer with Actor var peers List ActorRef List def receive case register
  • iOS13 getUserMedia 不适用于 Chrome 和 Edge

    我和我的朋友正在构建一个需要相机访问权限的应用程序 但我们在让相机与 iOS 配合使用时遇到了一些问题 我们使用的是 iOS13 Safari 在获取相机内容后立即冻结 chrome 和 Edge 根本无法获取相机访问权限 我们的代码如下
  • Asp.Net MVC 中 DataAnnotations StringLength 文本框的 maxlength 属性

    我正在开发 MVC2 应用程序 想要设置文本输入的 maxlength 属性 我已经使用数据注释在模型对象上定义了 stringlength 属性 并且它正在正确验证输入字符串的长度 当模型已有信息时 我不想通过手动设置最大长度属性来在视图
  • 启动 Firefox、使用特权 nsI* API 驱动第 3 方网站的最简单方法

    启动 Firefox 最简单的方法是什么 加载第 3 方网站 我是授权的 自动化 并针对该站点运行一些 特权 API 例如 nsIProgressListener nsIWindowMediator 等 我尝试了两种方法 使用 XULrun
  • Next.js - 从节点模块的“dist”文件夹提供静态 JS 的最佳方式

    我正在使用一个使用 Tesseract OCR 从图像中读取文本的应用程序 我想从 node modules tesseract js dist 获取一些 JS 文件 并使它们可以在浏览器中下载 我知道我可以将文件复制到 public ne