将 MathJax 集成到 SystemJS 构建中

2024-07-03

I use SystemJS建立一个Angular 2应用程序,我想开始使用MathJax在一个组件中。我安装了:

npm install --save-dev mathjax
npm install --save @types/mathjax

MathJax 现已安装在/node_modules/mathjax。当我的组件这样做时import "mathjax", 文件/node_modules/mathjax/MathJax.js已加载。到目前为止,一切都很好。

问题是,该文件随后尝试使用相对于项目根目录的路径而不是 MathJax 安装目录来加载其他文件。

例如,MathJax.js尝试加载

/extensions/MathMenu.js  404 Not found
/extensions/MathZoom.js  404 Not found 

正确的路径是

/node_modules/mathjax/extensions/MathMenu.js
/node_modules/mathjax/extensions/MathZoom.js

快速浏览一下源文件就会发现 URL 是这样引用的:

[MathJax]/extensions/MathMenu.js

知道我应该在哪里解决这个问题吗?我知道我不应该改变MathJax.js文件本身,因为更新后任何更改都将被覆盖。使用起来也没有意义htaccess或其他服务器端重定向。

我知道我可以使用 CDN 加载工作 MathJax 包:

<script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=AM_SVG"></script>

不过,我正在尝试学习如何将该库集成到我的构建设置中。


简单地说,你不能像这样集成MathJax(此时)。

MathJax 包含一个自定义动态模块加载器,旨在一直工作到 IE6;毫不奇怪,它不适用于当代的构建工具。

但很可能你也不想要完整集成 MathJax,因为它的大小为几十兆字节(压缩后)。现在,在实践中,您不需要所有组件,通常开发人员需要 1 个输入 + 1 个输出 + 1 组字体,大约约为 500-600KB(压缩)。

如果这是可行的有效负载,那么您可以考虑构建自定义的单文件构建(例如this one https://github.com/pkra/MathJax-single-file)你应该能够整合它。

无论如何,与当代构建工具的兼容性是 MathJax v3.0 明年的交付成果。

全面披露:我是 MathJax 团队的一员。

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

将 MathJax 集成到 SystemJS 构建中 的相关文章

随机推荐

  • 我可以在类中设置常量,然后在 PHP 中外部访问它吗?

    我正在尝试初始化类内的一些值并将它们保存在常量中并在外部代码的不同部分中访问它们
  • 更新列表的第 'x' 个元素 - Haskell [重复]

    这个问题在这里已经有答案了 可能的重复 替换 Haskell 中的单个列表元素 https stackoverflow com questions 5852722 replace individual list elements in ha
  • 让 g++ 使用 SHLD/SHRD 指令

    考虑以下代码 include
  • OSX 将 shell 脚本与文件扩展名相关联?

    我想将 exe 文件扩展名与启动 wine 的 shell 脚本关联起来 做这个的最好方式是什么 根据我收集的信息 我需要创建一个调用 wine 的 AppleScript 但是如何获取 AppleScript 中输入文件的名称 如果有更好
  • OSX 将 shell 脚本与文件扩展名相关联?

    我想将 exe 文件扩展名与启动 wine 的 shell 脚本关联起来 做这个的最好方式是什么 根据我收集的信息 我需要创建一个调用 wine 的 AppleScript 但是如何获取 AppleScript 中输入文件的名称 如果有更好
  • 处理操作栏向上按钮的正确方法?

    我使用 ActionBarSherlock 尽管我认为这并不重要 我有一个主要活动和一个关于活动 我希望 关于 活动通过其徽标显示后退箭头 并执行适当的动画等 我不知道如何正确执行此操作 目前 我在 onOptionsMenuItemSel
  • 处理操作栏向上按钮的正确方法?

    我使用 ActionBarSherlock 尽管我认为这并不重要 我有一个主要活动和一个关于活动 我希望 关于 活动通过其徽标显示后退箭头 并执行适当的动画等 我不知道如何正确执行此操作 目前 我在 onOptionsMenuItemSel
  • IE7 中的 Jquery Superfish 问题

    仅在 IE7 中 子菜单出现在我的页面内容下 我使用 bgframe 插件 这是我的代码 ul sf menu superfish 速度 快 autoArrows false 禁用箭头标记的生成 find ul bgIframe opaci
  • IE7 中的 Jquery Superfish 问题

    仅在 IE7 中 子菜单出现在我的页面内容下 我使用 bgframe 插件 这是我的代码 ul sf menu superfish 速度 快 autoArrows false 禁用箭头标记的生成 find ul bgIframe opaci
  • Laravel API TokenMismatchException

    我有一个带有发布数据的 API 调用 假设这是登录过程 使用 Chrome 的 Postman 扩展 我通过 POST 发送用户名和密码以登录用户 但我收到了这样的消息 Illuminate Session TokenMismatchExc
  • Laravel API TokenMismatchException

    我有一个带有发布数据的 API 调用 假设这是登录过程 使用 Chrome 的 Postman 扩展 我通过 POST 发送用户名和密码以登录用户 但我收到了这样的消息 Illuminate Session TokenMismatchExc
  • intel-xdk html5 平台 android 应用程序在模拟器中正常工作,但在设备中无法正常工作

    我已经使用 javascript 函数 getApi 包含了一个 php 文件 它在我的 intel xdk 模拟器中正常工作 但是当我将它加载到我的 Android 设备中时 它无法正常工作 所以请告诉我我的代码有什么问题 并且我的设备也
  • intel-xdk html5 平台 android 应用程序在模拟器中正常工作,但在设备中无法正常工作

    我已经使用 javascript 函数 getApi 包含了一个 php 文件 它在我的 intel xdk 模拟器中正常工作 但是当我将它加载到我的 Android 设备中时 它无法正常工作 所以请告诉我我的代码有什么问题 并且我的设备也
  • 闪亮仪表板中的选项卡特定侧边栏

    我正在使用shinyjs在 R 中进行封装以允许onclick键入事件以在选项卡集中的选项卡之间导航 每个选项卡都有一个特定的侧边栏 并且有多种 两种 方法可以在每个选项卡之间进行切换 即通过单击选项卡本身或单击 valueBoxes 我想
  • 闪亮仪表板中的选项卡特定侧边栏

    我正在使用shinyjs在 R 中进行封装以允许onclick键入事件以在选项卡集中的选项卡之间导航 每个选项卡都有一个特定的侧边栏 并且有多种 两种 方法可以在每个选项卡之间进行切换 即通过单击选项卡本身或单击 valueBoxes 我想
  • Hibernate 验证器异常“找不到类型的验证器:java.lang.String。”

    我使用 Spring 和 Spring MVC 3 1 Hibernate 3 Hibernate Validator 4 3 我想添加自定义约束验证器 但似乎我的验证器未调用并且总是出现 找不到类型的验证器 异常 我有什么错误吗 我总是遇
  • Hibernate 验证器异常“找不到类型的验证器:java.lang.String。”

    我使用 Spring 和 Spring MVC 3 1 Hibernate 3 Hibernate Validator 4 3 我想添加自定义约束验证器 但似乎我的验证器未调用并且总是出现 找不到类型的验证器 异常 我有什么错误吗 我总是遇
  • C 退出程序时是否需要释放分配的内存

    如果我在 C 程序中使用分配内存malloc现在我想退出 我是否必须释放分配的内存 或者我可以假设由于我的整个程序终止 它将被操作系统释放 我在Linux环境下运行 任何现代操作系统都会在进程终止后清理所有内容 但依赖于此通常不是一个好的做
  • C 退出程序时是否需要释放分配的内存

    如果我在 C 程序中使用分配内存malloc现在我想退出 我是否必须释放分配的内存 或者我可以假设由于我的整个程序终止 它将被操作系统释放 我在Linux环境下运行 任何现代操作系统都会在进程终止后清理所有内容 但依赖于此通常不是一个好的做
  • 将 MathJax 集成到 SystemJS 构建中

    I use SystemJS建立一个Angular 2应用程序 我想开始使用MathJax在一个组件中 我安装了 npm install save dev mathjax npm install save types mathjax Mat