# Hugo 中使用 NPM 和 JSX
本文尝试在 Hugo 中使用 NPM JSX 和 MDX
## Hugo NPM 包管理
hugo v0.124.1 为止,只有一个 pack 命令。用于生成 package.json 和 package.hugo.json
https://gohugo.io/commands/hugo_mod_npm_pack/
```
Various npm (Node package manager) helpers.
Usage:
hugo mod npm [command] [flags]
hugo mod npm [command]
Available Commands:
pack Experimental: Prepares and writes a composite package.json file for your project.
```
博客目录运行 hugo mod npm pack , 会读取并修改 package.json ,并生成 package.hugo.json 。没有 package.json 则生成 package.json 和 package.hugo.json 空模板。
```json
{
"comments": {
"dependencies": {},
"devDependencies": {}
},
"dependencies": {},
"devDependencies": {},
"name": "www.ftls.xyz",
"version": "0.1.0"
}
```
然后在 package.hugo.json 添加需要的依赖,并运行 hugo mod npm pack , hugo 会把依赖写入 package.json ,然后 install 一下就行了。如果先 `pnpm add -D preact` ,目前测试看起来需要手动把 devDependencies 复制到 package.hugo.json 中才行,hugo mod npm pack 以 package.hugo.json 为主。
```json
{
"devDependencies": {
"preact": "^10.20.2"
},
"name": "www.ftls.xyz",
"version": "0.1.0"
}
```
## 使用 JSX
如果想使用 JSX 功能,需要使用 Hugo v0.124.0 js.Build 新增功能。根据官网示例,新建 assets/js/test.jsx
```jsx
// https://gohugo.io/hugo-pipes/js/
// https://github.com/gohugoio/hugoTestProjectJSModImports
import { render } from 'preact';
const App = () => <>Hello world!>;
const container = document.getElementById('app');
if (container) render(