npmTo 容器
670字约2分钟
2024-10-08
概述
npmTo 容器用于将 npm 命令行转换为 pnpm / yarn / deno / bun
的命令行,并它们作为 代码块组呈现在页面。
在 ::: npm-to
容器中,只需要写 一次 npm 命令 代码块即可。
为什么需要 npmTo 容器 ?
在我编写文档时,常常需要提供 pnpm / yarn / npm
等不同运行环境的命令,需要写多个代码块并包装在 ::: code-tabs
容器中。它占据了我不少的工作量,而且还占据了 markdown 内容中的很长一部分空间,体验并不友好。 因此我编写了这个 ::: npm-to
容器以解决这个问题。
用法
::: npm-to
``` sh
npm install -D vuepress vuepress-theme-plume
```
:::
将 包含 npm
命令行的代码块,包裹在 ::: npm-to
容器中即可。
npm-to 容器仅支持存在单个代码块,不能包含其他内容
上述代码在内部会被转换为:
::: code-tabs
@tab pnpm
``` sh
pnpm add -D vuepress vuepress-theme-plume
```
@tab yarn
``` sh
yarn add -D vuepress vuepress-theme-plume
```
@tab npm
``` sh
npm install -D vuepress vuepress-theme-plume
```
:::
最终会在页面中呈现为:
pnpm
pnpm add -D vuepressvuepress-theme-plume
yarn
yarn add -D vuepressvuepress-theme-plume
npm
npm install -D vuepress vuepress-theme-plume
还可以控制 代码块组中的代码块的显示顺序,如下所示:
输入:
::: npm-to tabs="npm,yarn,pnpm,bun,deno"
``` sh
npm install -D vuepress vuepress-theme-plume
```
:::
输出:
npm
npm install -D vuepress vuepress-theme-plume
yarn
yarn add -D vuepressvuepress-theme-plume
pnpm
pnpm add -D vuepressvuepress-theme-plume
bun
bun add -D vuepressvuepress-theme-plume
deno
deno add -D vuepressvuepress-theme-plume
配置
该功能默认不启用,您需要在 theme
配置中启用它。
.vuepress/config.ts
export default defineUserConfig({
theme: plumeTheme({
plugins: {
markdownPower: {
// npmTo: true, // 启用,并使用默认配置
npmTo: {
tabs: ['npm', 'yarn', 'pnpm'], // 代码块组默认显示顺序
}
},
}
})
})
npm-to
支持将 npm
命令行转换为 pnpm / yarn / deno / bun
的命令行。可以根据需求进行配置 tabs
。
命令行支持
npmTo
并不对 npm
的所有命令行提供支持,以下是支持的列表:
npm install
/npm i
npm run
/npm run-script
npm init
npm create
npm uninstall
/npm rm
/npm remove
/npm un
/npm unlink
npm ci
npx
相关信息
对于不支持的命令行,npmTo
不会处理它们,仅将它们复制到其他的代码块中。
示例
输入:
::: npm-to
```sh
npm install && npm run docs:dev
```
:::
输出:
pnpm
pnpm install && pnpm docs:dev
yarn
yarn && yarn docs:dev
npm
npm install && npm run docs:dev
输入:
::: npm-to
```sh
npm i -D vue
npm i --save-peer vuepress
npm i typescript
```
:::
输出:
pnpm
pnpm add -D vue
pnpm add --save-peer vuepress
pnpm add typescript
yarn
yarn add -D vue
yarn add --peer vuepress
yarn add typescript
npm
npm i -D vue
npm i --save-peer vuepress
npm i typescript
输入:
::: npm-to
```sh
npm run docs:dev -- --clean-cache
```
:::
输出:
pnpm
pnpm docs:dev --clean-cache
yarn
yarn docs:dev --clean-cache
npm
npm run docs:dev -- --clean-cache
输入:
::: npm-to tabs="pnpm,yarn,npm,bun,deno"
```sh
npm ci
```
:::
输出:
pnpm
pnpm install --frozen-lockfile
yarn
yarn install --immutable
npm
npm ci
bun
bun install --frozen-lockfile
deno
deno install --frozen