michael-brade / LaTeX.js

JavaScript LaTeX to HTML5 translator
https://latex.js.org
MIT License
736 stars 58 forks source link

Errors intergrating with nuxt3. #152

Open Tennyleaz opened 1 month ago

Tennyleaz commented 1 month ago

I'm trying to add latex.js in my nuxt3 web app. When running in development mode npm run dev I got these errors:

Error: Build failed with 2 errors:
node_modules/latex.js/dist/latex.mjs:2:204145: ERROR: No loader is configured for ".keep" files: node_modules/latex.js/dist/documentclasses/.keep
node_modules/latex.js/dist/latex.mjs:2:204648: ERROR: No loader is configured for ".keep" files: node_modules/latex.js/dist/packages/.keep

When build npm run build I got no error, but instead errors running the app in browser:

error loading documentclass "minimal": ReferenceError: require is not defined

My minimal package.json is like:

{
  "name": "nuxt-app",
  "private": true,
  "type": "module",
  "scripts": {
    "build": "nuxt build",
    "dev": "nuxt dev",
    "generate": "nuxt generate",
    "preview": "nuxt preview",
    "postinstall": "nuxt prepare"
  },
  "dependencies": {
    "latex.js": "^0.12.6",
    "nuxt": "^3.11.2",
    "vue": "^3.4.27",
    "vue-router": "^4.3.2",
    "vuetify-nuxt-module": "^0.14.0"
  }
}

My sample usage is like:

<template>
  <div id='result'>
    <v-btn @click="onTest">Test</v-btn>
  </div>
</template>

<script lang="ts">
import { parse, HtmlGenerator } from "latex.js";
export default defineNuxtComponent({
  methods: {
    onTest() {
      const latex = "\\documentclass{minimal}\n\\begin{document}\nHello\n\\end{document}";
      let generator = new HtmlGenerator({ hyphenate: false });
      generator = parse(latex, { generator: generator });
      document.head.appendChild(generator.stylesAndScripts(""))
      (document.getElementById("result") as HTMLDivElement).appendChild(generator.domFragment())
    },
  }
});
</script>

Any help is appreciated.

yashraut19 commented 1 week ago

facing same issue