Files
KaTeX/docs/node.md
ylemkimon 15ee9b4a5a feat: conditionally export ECMAScript modules (#3377)
* feat: conditionally export ECMAScript modules

BREAKING CHANGE: With module loaders that support conditional exports
and ECMAScript modules, `import katex from 'katex';` will import the
ECMAScript module.

You can now use:
|Before                                    |After                             |
|------------------------------------------|----------------------------------|
|`require('katex/dist/contrib/[name].js')` | `require('katex/contrib/[name]')`|
|`import katex from 'katex/dist/katex.mjs'`| `import katex from 'katex'`      |
|`import 'katex/dist/contrib/[name].mjs'`  | `import 'katex/contrib/[name]'`  |
2021-10-30 19:23:56 +00:00

94 lines
2.5 KiB
Markdown

---
id: node
title: Node.js
---
## Installation
### npm
Install with `npm`:
```bash
npm install katex
# or globally
npm install -g katex
```
### Yarn
Install with `Yarn`:
```bash
yarn add katex
# or globally
yarn global add katex
```
### Building from Source
To build you will need Git, Node.js 10 or later, and Yarn.
Clone a copy of the GitHub source repository:
```bash
git clone https://github.com/KaTeX/KaTeX.git
cd KaTeX
```
Then install dependencies and run `build` script:
```bash
yarn
yarn build
```
It will automatically transpile code and include only necessary fonts for
target environments specified by [Browserslist config](https://github.com/browserslist/browserslist#environment-variables).
For example, if you are making a web app for a kiosk with Chrome 68, run
`BROWSERSLIST="Chrome 68" yarn build` and it will produce build with no
transpilation, as it fully supports ES6, and only include WOFF2 fonts.
You can override included fonts using environment variables. Set `USE_(FONT NAME)`
environment variable to `"true"` or `"false"`, to force a font type to be included
or excluded, respectively.`
If you'd like to use the built KaTeX in other projects, install the package by
specifying the path:
```bash
yarn add /path/to/KaTeX
# or using npm
npm install /path/to/KaTeX
```
> You can manually download the package and source code from
[GitHub releases](https://github.com/KaTeX/KaTeX/releases).
## Importing
KaTeX is exported as a CommonJS module, which can be imported using `require`:
```js
const katex = require('katex');
```
KaTeX also conditionally exports an ECMAScript module:
```js
import katex from 'katex';
```
> The ES module contains ES6 syntaxes and features, and may need transpiling to
use in old environments.
See the [API](api.html) for available functions in the `katex` module.
## Including in webpages
To render any HTML generated by e.g. `katex.renderToString`, you will
still need to link the CSS file, make the KaTeX font files available to the
client, and use the HTML5 doctype. See [browser usage](browser.html).
Note, however, that you do not need to include `katex.js` on the client.
## Using mhchem extension
The [mhchem extension](https://github.com/KaTeX/KaTeX/tree/main/contrib/mhchem)
adds its features by modifying the `katex` module. So you can use KaTeX with
mhchem in Node as follows:
```js
const katex = require('katex');
require('katex/contrib/mhchem'); // modify katex module
const html = katex.renderToString('\\ce{CO2 + C -> 2 C0}');
```