├── .github └── workflows │ └── main.yml ├── .gitignore ├── .markdownlint.json ├── .npmrc ├── .prettierignore ├── LICENSE ├── README.md ├── package.json ├── pnpm-lock.yaml └── src ├── .vitepress ├── config.js ├── config │ └── gen-sitemap.js └── theme │ ├── index.css │ └── index.js ├── guide ├── getting-start.md ├── introduction.md └── understanding.md ├── index.md ├── public ├── CNAME └── baidu_verify_codeva-mnid3WVeSh.html └── reference ├── advanced ├── hooks.md ├── installers.md ├── packages.md ├── pnpm.md ├── uninstall.md └── workspaces.md ├── completions.md ├── fetch.md ├── help.md ├── index.md ├── install.md ├── list.md ├── pin.md ├── run.md ├── setup.md ├── uninstall.md └── which.md /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | # This is a basic workflow to help you get started with Actions 2 | 3 | name: 自动部署文档 4 | 5 | # Controls when the workflow will run 6 | on: 7 | # Triggers the workflow on push or pull request events but only for the main branch 8 | push: 9 | branches: [main] 10 | pull_request: 11 | branches: [main] 12 | 13 | # Allows you to run this workflow manually from the Actions tab 14 | workflow_dispatch: 15 | 16 | # A workflow run is made up of one or more jobs that can run sequentially or in parallel 17 | jobs: 18 | # This workflow contains a single job called "build" 19 | build: 20 | # The type of runner that the job will run on 21 | runs-on: ubuntu-latest 22 | 23 | strategy: 24 | matrix: 25 | node-version: [18.x] 26 | npm-version: [9.x] 27 | # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ 28 | 29 | # Steps represent a sequence of tasks that will be executed as part of the job 30 | steps: 31 | # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it 32 | - uses: actions/checkout@v3 33 | - name: Use Node.js ${{ matrix.node-version }} 34 | uses: actions/setup-node@v3 35 | with: 36 | node-version: ${{ matrix.node-version }} 37 | 38 | # Runs a single command using the runners shell 39 | - name: 安装pnpm 40 | uses: pnpm/action-setup@v2 41 | with: 42 | version: 8.6.6 43 | run_install: true 44 | 45 | - name: 打包 46 | run: pnpm run build 47 | 48 | # 配置git用户名和邮箱 49 | - name: 配置git 50 | run: git config --global user.email "guojikun486546@163.com" && git config --global user.name "GuoJikun" && git config --global init.defaultBranch main 51 | 52 | - name: 部署文档到gh-pages 53 | env: 54 | BRANCH: gh-pages 55 | ACCESS_TOKEN: ${{ secrets.git_token }} 56 | run: cd ./src/.vitepress/dist && git init && git add -A && git commit -m "deploy" && git push -f https://$ACCESS_TOKEN@github.com/document-translate/volta.git main:$BRANCH 57 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | src/.vitepress/dist 3 | src/.vitepress/cache 4 | .vitepress/dist 5 | .vitepress/cache -------------------------------------------------------------------------------- /.markdownlint.json: -------------------------------------------------------------------------------- 1 | { 2 | "default": true, 3 | "MD007": { "indent": 4 }, 4 | "no-hard-tabs": false, 5 | "MD013": { "line_length": 100 }, 6 | "MD030": { "ul_multi": 1, "ul_single": 1, "ol_multi": 1, "ol_single": 1 }, 7 | "MD033": { 8 | "allowed_elements": [ 9 | "script", 10 | "style", 11 | "div", 12 | "ClientOnly", 13 | "yak-barcode", 14 | "br" 15 | ] 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | registry=https://registry.npmmirror.com/ -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | *.json 2 | *.yml -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 GuoJikun 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Volta 中文版-非官方 2 | 3 | 翻译至:`https://github.com/volta-cli/website` 4 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "volta", 3 | "version": "1.0.0", 4 | "description": "volta 中文文档(非官方)", 5 | "main": "index.js", 6 | "type": "module", 7 | "scripts": { 8 | "dev": "vitepress dev src", 9 | "build": "vitepress build src", 10 | "preview": "vitepress preview" 11 | }, 12 | "keywords": [ 13 | "volta", 14 | "pkg", 15 | "npm" 16 | ], 17 | "author": "", 18 | "license": "ISC", 19 | "devDependencies": { 20 | "vitepress": "^1.5.0" 21 | }, 22 | "dependencies": { 23 | "vue": "^3.5.13" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | dependencies: 11 | vue: 12 | specifier: ^3.5.13 13 | version: 3.5.13 14 | devDependencies: 15 | vitepress: 16 | specifier: ^1.5.0 17 | version: 1.5.0(@algolia/client-search@5.15.0)(postcss@8.4.49)(search-insights@2.13.0) 18 | 19 | packages: 20 | 21 | '@algolia/autocomplete-core@1.17.7': 22 | resolution: {integrity: sha512-BjiPOW6ks90UKl7TwMv7oNQMnzU+t/wk9mgIDi6b1tXpUek7MW0lbNOUHpvam9pe3lVCf4xPFT+lK7s+e+fs7Q==} 23 | 24 | '@algolia/autocomplete-plugin-algolia-insights@1.17.7': 25 | resolution: {integrity: sha512-Jca5Ude6yUOuyzjnz57og7Et3aXjbwCSDf/8onLHSQgw1qW3ALl9mrMWaXb5FmPVkV3EtkD2F/+NkT6VHyPu9A==} 26 | peerDependencies: 27 | search-insights: '>= 1 < 3' 28 | 29 | '@algolia/autocomplete-preset-algolia@1.17.7': 30 | resolution: {integrity: sha512-ggOQ950+nwbWROq2MOCIL71RE0DdQZsceqrg32UqnhDz8FlO9rL8ONHNsI2R1MH0tkgVIDKI/D0sMiUchsFdWA==} 31 | peerDependencies: 32 | '@algolia/client-search': '>= 4.9.1 < 6' 33 | algoliasearch: '>= 4.9.1 < 6' 34 | 35 | '@algolia/autocomplete-shared@1.17.7': 36 | resolution: {integrity: sha512-o/1Vurr42U/qskRSuhBH+VKxMvkkUVTLU6WZQr+L5lGZZLYWyhdzWjW0iGXY7EkwRTjBqvN2EsR81yCTGV/kmg==} 37 | peerDependencies: 38 | '@algolia/client-search': '>= 4.9.1 < 6' 39 | algoliasearch: '>= 4.9.1 < 6' 40 | 41 | '@algolia/client-abtesting@5.15.0': 42 | resolution: {integrity: sha512-FaEM40iuiv1mAipYyiptP4EyxkJ8qHfowCpEeusdHUC4C7spATJYArD2rX3AxkVeREkDIgYEOuXcwKUbDCr7Nw==} 43 | engines: {node: '>= 14.0.0'} 44 | 45 | '@algolia/client-analytics@5.15.0': 46 | resolution: {integrity: sha512-lho0gTFsQDIdCwyUKTtMuf9nCLwq9jOGlLGIeQGKDxXF7HbiAysFIu5QW/iQr1LzMgDyM9NH7K98KY+BiIFriQ==} 47 | engines: {node: '>= 14.0.0'} 48 | 49 | '@algolia/client-common@5.15.0': 50 | resolution: {integrity: sha512-IofrVh213VLsDkPoSKMeM9Dshrv28jhDlBDLRcVJQvlL8pzue7PEB1EZ4UoJFYS3NSn7JOcJ/V+olRQzXlJj1w==} 51 | engines: {node: '>= 14.0.0'} 52 | 53 | '@algolia/client-insights@5.15.0': 54 | resolution: {integrity: sha512-bDDEQGfFidDi0UQUCbxXOCdphbVAgbVmxvaV75cypBTQkJ+ABx/Npw7LkFGw1FsoVrttlrrQbwjvUB6mLVKs/w==} 55 | engines: {node: '>= 14.0.0'} 56 | 57 | '@algolia/client-personalization@5.15.0': 58 | resolution: {integrity: sha512-LfaZqLUWxdYFq44QrasCDED5bSYOswpQjSiIL7Q5fYlefAAUO95PzBPKCfUhSwhb4rKxigHfDkd81AvEicIEoA==} 59 | engines: {node: '>= 14.0.0'} 60 | 61 | '@algolia/client-query-suggestions@5.15.0': 62 | resolution: {integrity: sha512-wu8GVluiZ5+il8WIRsGKu8VxMK9dAlr225h878GGtpTL6VBvwyJvAyLdZsfFIpY0iN++jiNb31q2C1PlPL+n/A==} 63 | engines: {node: '>= 14.0.0'} 64 | 65 | '@algolia/client-search@5.15.0': 66 | resolution: {integrity: sha512-Z32gEMrRRpEta5UqVQA612sLdoqY3AovvUPClDfMxYrbdDAebmGDVPtSogUba1FZ4pP5dx20D3OV3reogLKsRA==} 67 | engines: {node: '>= 14.0.0'} 68 | 69 | '@algolia/ingestion@1.15.0': 70 | resolution: {integrity: sha512-MkqkAxBQxtQ5if/EX2IPqFA7LothghVyvPoRNA/meS2AW2qkHwcxjuiBxv4H6mnAVEPfJlhu9rkdVz9LgCBgJg==} 71 | engines: {node: '>= 14.0.0'} 72 | 73 | '@algolia/monitoring@1.15.0': 74 | resolution: {integrity: sha512-QPrFnnGLMMdRa8t/4bs7XilPYnoUXDY8PMQJ1sf9ZFwhUysYYhQNX34/enoO0LBjpoOY6rLpha39YQEFbzgKyQ==} 75 | engines: {node: '>= 14.0.0'} 76 | 77 | '@algolia/recommend@5.15.0': 78 | resolution: {integrity: sha512-5eupMwSqMLDObgSMF0XG958zR6GJP3f7jHDQ3/WlzCM9/YIJiWIUoJFGsko9GYsA5xbLDHE/PhWtq4chcCdaGQ==} 79 | engines: {node: '>= 14.0.0'} 80 | 81 | '@algolia/requester-browser-xhr@5.15.0': 82 | resolution: {integrity: sha512-Po/GNib6QKruC3XE+WKP1HwVSfCDaZcXu48kD+gwmtDlqHWKc7Bq9lrS0sNZ456rfCKhXksOmMfUs4wRM/Y96w==} 83 | engines: {node: '>= 14.0.0'} 84 | 85 | '@algolia/requester-fetch@5.15.0': 86 | resolution: {integrity: sha512-rOZ+c0P7ajmccAvpeeNrUmEKoliYFL8aOR5qGW5pFq3oj3Iept7Y5mEtEsOBYsRt6qLnaXn4zUKf+N8nvJpcIw==} 87 | engines: {node: '>= 14.0.0'} 88 | 89 | '@algolia/requester-node-http@5.15.0': 90 | resolution: {integrity: sha512-b1jTpbFf9LnQHEJP5ddDJKE2sAlhYd7EVSOWgzo/27n/SfCoHfqD0VWntnWYD83PnOKvfe8auZ2+xCb0TXotrQ==} 91 | engines: {node: '>= 14.0.0'} 92 | 93 | '@babel/helper-string-parser@7.25.9': 94 | resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} 95 | engines: {node: '>=6.9.0'} 96 | 97 | '@babel/helper-validator-identifier@7.25.9': 98 | resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} 99 | engines: {node: '>=6.9.0'} 100 | 101 | '@babel/parser@7.26.2': 102 | resolution: {integrity: sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==} 103 | engines: {node: '>=6.0.0'} 104 | hasBin: true 105 | 106 | '@babel/types@7.26.0': 107 | resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==} 108 | engines: {node: '>=6.9.0'} 109 | 110 | '@docsearch/css@3.8.0': 111 | resolution: {integrity: sha512-pieeipSOW4sQ0+bE5UFC51AOZp9NGxg89wAlZ1BAQFaiRAGK1IKUaPQ0UGZeNctJXyqZ1UvBtOQh2HH+U5GtmA==} 112 | 113 | '@docsearch/js@3.8.0': 114 | resolution: {integrity: sha512-PVuV629f5UcYRtBWqK7ID6vNL5647+2ADJypwTjfeBIrJfwPuHtzLy39hMGMfFK+0xgRyhTR0FZ83EkdEraBlg==} 115 | 116 | '@docsearch/react@3.8.0': 117 | resolution: {integrity: sha512-WnFK720+iwTVt94CxY3u+FgX6exb3BfN5kE9xUY6uuAH/9W/UFboBZFLlrw/zxFRHoHZCOXRtOylsXF+6LHI+Q==} 118 | peerDependencies: 119 | '@types/react': '>= 16.8.0 < 19.0.0' 120 | react: '>= 16.8.0 < 19.0.0' 121 | react-dom: '>= 16.8.0 < 19.0.0' 122 | search-insights: '>= 1 < 3' 123 | peerDependenciesMeta: 124 | '@types/react': 125 | optional: true 126 | react: 127 | optional: true 128 | react-dom: 129 | optional: true 130 | search-insights: 131 | optional: true 132 | 133 | '@esbuild/aix-ppc64@0.21.5': 134 | resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} 135 | engines: {node: '>=12'} 136 | cpu: [ppc64] 137 | os: [aix] 138 | 139 | '@esbuild/android-arm64@0.21.5': 140 | resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} 141 | engines: {node: '>=12'} 142 | cpu: [arm64] 143 | os: [android] 144 | 145 | '@esbuild/android-arm@0.21.5': 146 | resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} 147 | engines: {node: '>=12'} 148 | cpu: [arm] 149 | os: [android] 150 | 151 | '@esbuild/android-x64@0.21.5': 152 | resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} 153 | engines: {node: '>=12'} 154 | cpu: [x64] 155 | os: [android] 156 | 157 | '@esbuild/darwin-arm64@0.21.5': 158 | resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} 159 | engines: {node: '>=12'} 160 | cpu: [arm64] 161 | os: [darwin] 162 | 163 | '@esbuild/darwin-x64@0.21.5': 164 | resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} 165 | engines: {node: '>=12'} 166 | cpu: [x64] 167 | os: [darwin] 168 | 169 | '@esbuild/freebsd-arm64@0.21.5': 170 | resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} 171 | engines: {node: '>=12'} 172 | cpu: [arm64] 173 | os: [freebsd] 174 | 175 | '@esbuild/freebsd-x64@0.21.5': 176 | resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} 177 | engines: {node: '>=12'} 178 | cpu: [x64] 179 | os: [freebsd] 180 | 181 | '@esbuild/linux-arm64@0.21.5': 182 | resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} 183 | engines: {node: '>=12'} 184 | cpu: [arm64] 185 | os: [linux] 186 | 187 | '@esbuild/linux-arm@0.21.5': 188 | resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} 189 | engines: {node: '>=12'} 190 | cpu: [arm] 191 | os: [linux] 192 | 193 | '@esbuild/linux-ia32@0.21.5': 194 | resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} 195 | engines: {node: '>=12'} 196 | cpu: [ia32] 197 | os: [linux] 198 | 199 | '@esbuild/linux-loong64@0.21.5': 200 | resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} 201 | engines: {node: '>=12'} 202 | cpu: [loong64] 203 | os: [linux] 204 | 205 | '@esbuild/linux-mips64el@0.21.5': 206 | resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} 207 | engines: {node: '>=12'} 208 | cpu: [mips64el] 209 | os: [linux] 210 | 211 | '@esbuild/linux-ppc64@0.21.5': 212 | resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} 213 | engines: {node: '>=12'} 214 | cpu: [ppc64] 215 | os: [linux] 216 | 217 | '@esbuild/linux-riscv64@0.21.5': 218 | resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} 219 | engines: {node: '>=12'} 220 | cpu: [riscv64] 221 | os: [linux] 222 | 223 | '@esbuild/linux-s390x@0.21.5': 224 | resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} 225 | engines: {node: '>=12'} 226 | cpu: [s390x] 227 | os: [linux] 228 | 229 | '@esbuild/linux-x64@0.21.5': 230 | resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} 231 | engines: {node: '>=12'} 232 | cpu: [x64] 233 | os: [linux] 234 | 235 | '@esbuild/netbsd-x64@0.21.5': 236 | resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} 237 | engines: {node: '>=12'} 238 | cpu: [x64] 239 | os: [netbsd] 240 | 241 | '@esbuild/openbsd-x64@0.21.5': 242 | resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} 243 | engines: {node: '>=12'} 244 | cpu: [x64] 245 | os: [openbsd] 246 | 247 | '@esbuild/sunos-x64@0.21.5': 248 | resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} 249 | engines: {node: '>=12'} 250 | cpu: [x64] 251 | os: [sunos] 252 | 253 | '@esbuild/win32-arm64@0.21.5': 254 | resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} 255 | engines: {node: '>=12'} 256 | cpu: [arm64] 257 | os: [win32] 258 | 259 | '@esbuild/win32-ia32@0.21.5': 260 | resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} 261 | engines: {node: '>=12'} 262 | cpu: [ia32] 263 | os: [win32] 264 | 265 | '@esbuild/win32-x64@0.21.5': 266 | resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} 267 | engines: {node: '>=12'} 268 | cpu: [x64] 269 | os: [win32] 270 | 271 | '@iconify-json/simple-icons@1.2.13': 272 | resolution: {integrity: sha512-rRQjMoIt/kPfaD+fnBC9YZQpso3hkn8xPeadl+YWhscJ5SVUCdB9oTeR9VIpt+/5Yi8vEkh2UOWFPq4lz3ee2A==} 273 | 274 | '@iconify/types@2.0.0': 275 | resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} 276 | 277 | '@jridgewell/sourcemap-codec@1.5.0': 278 | resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} 279 | 280 | '@rollup/rollup-android-arm-eabi@4.27.4': 281 | resolution: {integrity: sha512-2Y3JT6f5MrQkICUyRVCw4oa0sutfAsgaSsb0Lmmy1Wi2y7X5vT9Euqw4gOsCyy0YfKURBg35nhUKZS4mDcfULw==} 282 | cpu: [arm] 283 | os: [android] 284 | 285 | '@rollup/rollup-android-arm64@4.27.4': 286 | resolution: {integrity: sha512-wzKRQXISyi9UdCVRqEd0H4cMpzvHYt1f/C3CoIjES6cG++RHKhrBj2+29nPF0IB5kpy9MS71vs07fvrNGAl/iA==} 287 | cpu: [arm64] 288 | os: [android] 289 | 290 | '@rollup/rollup-darwin-arm64@4.27.4': 291 | resolution: {integrity: sha512-PlNiRQapift4LNS8DPUHuDX/IdXiLjf8mc5vdEmUR0fF/pyy2qWwzdLjB+iZquGr8LuN4LnUoSEvKRwjSVYz3Q==} 292 | cpu: [arm64] 293 | os: [darwin] 294 | 295 | '@rollup/rollup-darwin-x64@4.27.4': 296 | resolution: {integrity: sha512-o9bH2dbdgBDJaXWJCDTNDYa171ACUdzpxSZt+u/AAeQ20Nk5x+IhA+zsGmrQtpkLiumRJEYef68gcpn2ooXhSQ==} 297 | cpu: [x64] 298 | os: [darwin] 299 | 300 | '@rollup/rollup-freebsd-arm64@4.27.4': 301 | resolution: {integrity: sha512-NBI2/i2hT9Q+HySSHTBh52da7isru4aAAo6qC3I7QFVsuhxi2gM8t/EI9EVcILiHLj1vfi+VGGPaLOUENn7pmw==} 302 | cpu: [arm64] 303 | os: [freebsd] 304 | 305 | '@rollup/rollup-freebsd-x64@4.27.4': 306 | resolution: {integrity: sha512-wYcC5ycW2zvqtDYrE7deary2P2UFmSh85PUpAx+dwTCO9uw3sgzD6Gv9n5X4vLaQKsrfTSZZ7Z7uynQozPVvWA==} 307 | cpu: [x64] 308 | os: [freebsd] 309 | 310 | '@rollup/rollup-linux-arm-gnueabihf@4.27.4': 311 | resolution: {integrity: sha512-9OwUnK/xKw6DyRlgx8UizeqRFOfi9mf5TYCw1uolDaJSbUmBxP85DE6T4ouCMoN6pXw8ZoTeZCSEfSaYo+/s1w==} 312 | cpu: [arm] 313 | os: [linux] 314 | libc: [glibc] 315 | 316 | '@rollup/rollup-linux-arm-musleabihf@4.27.4': 317 | resolution: {integrity: sha512-Vgdo4fpuphS9V24WOV+KwkCVJ72u7idTgQaBoLRD0UxBAWTF9GWurJO9YD9yh00BzbkhpeXtm6na+MvJU7Z73A==} 318 | cpu: [arm] 319 | os: [linux] 320 | libc: [musl] 321 | 322 | '@rollup/rollup-linux-arm64-gnu@4.27.4': 323 | resolution: {integrity: sha512-pleyNgyd1kkBkw2kOqlBx+0atfIIkkExOTiifoODo6qKDSpnc6WzUY5RhHdmTdIJXBdSnh6JknnYTtmQyobrVg==} 324 | cpu: [arm64] 325 | os: [linux] 326 | libc: [glibc] 327 | 328 | '@rollup/rollup-linux-arm64-musl@4.27.4': 329 | resolution: {integrity: sha512-caluiUXvUuVyCHr5DxL8ohaaFFzPGmgmMvwmqAITMpV/Q+tPoaHZ/PWa3t8B2WyoRcIIuu1hkaW5KkeTDNSnMA==} 330 | cpu: [arm64] 331 | os: [linux] 332 | libc: [musl] 333 | 334 | '@rollup/rollup-linux-powerpc64le-gnu@4.27.4': 335 | resolution: {integrity: sha512-FScrpHrO60hARyHh7s1zHE97u0KlT/RECzCKAdmI+LEoC1eDh/RDji9JgFqyO+wPDb86Oa/sXkily1+oi4FzJQ==} 336 | cpu: [ppc64] 337 | os: [linux] 338 | libc: [glibc] 339 | 340 | '@rollup/rollup-linux-riscv64-gnu@4.27.4': 341 | resolution: {integrity: sha512-qyyprhyGb7+RBfMPeww9FlHwKkCXdKHeGgSqmIXw9VSUtvyFZ6WZRtnxgbuz76FK7LyoN8t/eINRbPUcvXB5fw==} 342 | cpu: [riscv64] 343 | os: [linux] 344 | libc: [glibc] 345 | 346 | '@rollup/rollup-linux-s390x-gnu@4.27.4': 347 | resolution: {integrity: sha512-PFz+y2kb6tbh7m3A7nA9++eInGcDVZUACulf/KzDtovvdTizHpZaJty7Gp0lFwSQcrnebHOqxF1MaKZd7psVRg==} 348 | cpu: [s390x] 349 | os: [linux] 350 | libc: [glibc] 351 | 352 | '@rollup/rollup-linux-x64-gnu@4.27.4': 353 | resolution: {integrity: sha512-Ni8mMtfo+o/G7DVtweXXV/Ol2TFf63KYjTtoZ5f078AUgJTmaIJnj4JFU7TK/9SVWTaSJGxPi5zMDgK4w+Ez7Q==} 354 | cpu: [x64] 355 | os: [linux] 356 | libc: [glibc] 357 | 358 | '@rollup/rollup-linux-x64-musl@4.27.4': 359 | resolution: {integrity: sha512-5AeeAF1PB9TUzD+3cROzFTnAJAcVUGLuR8ng0E0WXGkYhp6RD6L+6szYVX+64Rs0r72019KHZS1ka1q+zU/wUw==} 360 | cpu: [x64] 361 | os: [linux] 362 | libc: [musl] 363 | 364 | '@rollup/rollup-win32-arm64-msvc@4.27.4': 365 | resolution: {integrity: sha512-yOpVsA4K5qVwu2CaS3hHxluWIK5HQTjNV4tWjQXluMiiiu4pJj4BN98CvxohNCpcjMeTXk/ZMJBRbgRg8HBB6A==} 366 | cpu: [arm64] 367 | os: [win32] 368 | 369 | '@rollup/rollup-win32-ia32-msvc@4.27.4': 370 | resolution: {integrity: sha512-KtwEJOaHAVJlxV92rNYiG9JQwQAdhBlrjNRp7P9L8Cb4Rer3in+0A+IPhJC9y68WAi9H0sX4AiG2NTsVlmqJeQ==} 371 | cpu: [ia32] 372 | os: [win32] 373 | 374 | '@rollup/rollup-win32-x64-msvc@4.27.4': 375 | resolution: {integrity: sha512-3j4jx1TppORdTAoBJRd+/wJRGCPC0ETWkXOecJ6PPZLj6SptXkrXcNqdj0oclbKML6FkQltdz7bBA3rUSirZug==} 376 | cpu: [x64] 377 | os: [win32] 378 | 379 | '@shikijs/core@1.23.1': 380 | resolution: {integrity: sha512-NuOVgwcHgVC6jBVH5V7iblziw6iQbWWHrj5IlZI3Fqu2yx9awH7OIQkXIcsHsUmY19ckwSgUMgrqExEyP5A0TA==} 381 | 382 | '@shikijs/engine-javascript@1.23.1': 383 | resolution: {integrity: sha512-i/LdEwT5k3FVu07SiApRFwRcSJs5QM9+tod5vYCPig1Ywi8GR30zcujbxGQFJHwYD7A5BUqagi8o5KS+LEVgBg==} 384 | 385 | '@shikijs/engine-oniguruma@1.23.1': 386 | resolution: {integrity: sha512-KQ+lgeJJ5m2ISbUZudLR1qHeH3MnSs2mjFg7bnencgs5jDVPeJ2NVDJ3N5ZHbcTsOIh0qIueyAJnwg7lg7kwXQ==} 387 | 388 | '@shikijs/transformers@1.23.1': 389 | resolution: {integrity: sha512-yQ2Cn0M9i46p30KwbyIzLvKDk+dQNU+lj88RGO0XEj54Hn4Cof1bZoDb9xBRWxFE4R8nmK63w7oHnJwvOtt0NQ==} 390 | 391 | '@shikijs/types@1.23.1': 392 | resolution: {integrity: sha512-98A5hGyEhzzAgQh2dAeHKrWW4HfCMeoFER2z16p5eJ+vmPeF6lZ/elEne6/UCU551F/WqkopqRsr1l2Yu6+A0g==} 393 | 394 | '@shikijs/vscode-textmate@9.3.0': 395 | resolution: {integrity: sha512-jn7/7ky30idSkd/O5yDBfAnVt+JJpepofP/POZ1iMOxK59cOfqIgg/Dj0eFsjOTMw+4ycJN0uhZH/Eb0bs/EUA==} 396 | 397 | '@types/estree@1.0.6': 398 | resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} 399 | 400 | '@types/hast@3.0.4': 401 | resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} 402 | 403 | '@types/linkify-it@5.0.0': 404 | resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} 405 | 406 | '@types/markdown-it@14.1.2': 407 | resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==} 408 | 409 | '@types/mdast@4.0.4': 410 | resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} 411 | 412 | '@types/mdurl@2.0.0': 413 | resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==} 414 | 415 | '@types/unist@3.0.3': 416 | resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} 417 | 418 | '@types/web-bluetooth@0.0.20': 419 | resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} 420 | 421 | '@ungap/structured-clone@1.2.0': 422 | resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} 423 | 424 | '@vitejs/plugin-vue@5.2.1': 425 | resolution: {integrity: sha512-cxh314tzaWwOLqVes2gnnCtvBDcM1UMdn+iFR+UjAn411dPT3tOmqrJjbMd7koZpMAmBM/GqeV4n9ge7JSiJJQ==} 426 | engines: {node: ^18.0.0 || >=20.0.0} 427 | peerDependencies: 428 | vite: ^5.0.0 || ^6.0.0 429 | vue: ^3.2.25 430 | 431 | '@vue/compiler-core@3.5.13': 432 | resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==} 433 | 434 | '@vue/compiler-dom@3.5.13': 435 | resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==} 436 | 437 | '@vue/compiler-sfc@3.5.13': 438 | resolution: {integrity: sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==} 439 | 440 | '@vue/compiler-ssr@3.5.13': 441 | resolution: {integrity: sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==} 442 | 443 | '@vue/devtools-api@7.6.4': 444 | resolution: {integrity: sha512-5AaJ5ELBIuevmFMZYYLuOO9HUuY/6OlkOELHE7oeDhy4XD/hSODIzktlsvBOsn+bto3aD0psj36LGzwVu5Ip8w==} 445 | 446 | '@vue/devtools-kit@7.6.4': 447 | resolution: {integrity: sha512-Zs86qIXXM9icU0PiGY09PQCle4TI750IPLmAJzW5Kf9n9t5HzSYf6Rz6fyzSwmfMPiR51SUKJh9sXVZu78h2QA==} 448 | 449 | '@vue/devtools-shared@7.6.4': 450 | resolution: {integrity: sha512-nD6CUvBEel+y7zpyorjiUocy0nh77DThZJ0k1GRnJeOmY3ATq2fWijEp7wk37gb023Cb0R396uYh5qMSBQ5WFg==} 451 | 452 | '@vue/reactivity@3.5.13': 453 | resolution: {integrity: sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==} 454 | 455 | '@vue/runtime-core@3.5.13': 456 | resolution: {integrity: sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==} 457 | 458 | '@vue/runtime-dom@3.5.13': 459 | resolution: {integrity: sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==} 460 | 461 | '@vue/server-renderer@3.5.13': 462 | resolution: {integrity: sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==} 463 | peerDependencies: 464 | vue: 3.5.13 465 | 466 | '@vue/shared@3.5.13': 467 | resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==} 468 | 469 | '@vueuse/core@11.3.0': 470 | resolution: {integrity: sha512-7OC4Rl1f9G8IT6rUfi9JrKiXy4bfmHhZ5x2Ceojy0jnd3mHNEvV4JaRygH362ror6/NZ+Nl+n13LPzGiPN8cKA==} 471 | 472 | '@vueuse/integrations@11.3.0': 473 | resolution: {integrity: sha512-5fzRl0apQWrDezmobchoiGTkGw238VWESxZHazfhP3RM7pDSiyXy18QbfYkILoYNTd23HPAfQTJpkUc5QbkwTw==} 474 | peerDependencies: 475 | async-validator: ^4 476 | axios: ^1 477 | change-case: ^5 478 | drauu: ^0.4 479 | focus-trap: ^7 480 | fuse.js: ^7 481 | idb-keyval: ^6 482 | jwt-decode: ^4 483 | nprogress: ^0.2 484 | qrcode: ^1.5 485 | sortablejs: ^1 486 | universal-cookie: ^7 487 | peerDependenciesMeta: 488 | async-validator: 489 | optional: true 490 | axios: 491 | optional: true 492 | change-case: 493 | optional: true 494 | drauu: 495 | optional: true 496 | focus-trap: 497 | optional: true 498 | fuse.js: 499 | optional: true 500 | idb-keyval: 501 | optional: true 502 | jwt-decode: 503 | optional: true 504 | nprogress: 505 | optional: true 506 | qrcode: 507 | optional: true 508 | sortablejs: 509 | optional: true 510 | universal-cookie: 511 | optional: true 512 | 513 | '@vueuse/metadata@11.3.0': 514 | resolution: {integrity: sha512-pwDnDspTqtTo2HwfLw4Rp6yywuuBdYnPYDq+mO38ZYKGebCUQC/nVj/PXSiK9HX5otxLz8Fn7ECPbjiRz2CC3g==} 515 | 516 | '@vueuse/shared@11.3.0': 517 | resolution: {integrity: sha512-P8gSSWQeucH5821ek2mn/ciCk+MS/zoRKqdQIM3bHq6p7GXDAJLmnRRKmF5F65sAVJIfzQlwR3aDzwCn10s8hA==} 518 | 519 | algoliasearch@5.15.0: 520 | resolution: {integrity: sha512-Yf3Swz1s63hjvBVZ/9f2P1Uu48GjmjCN+Esxb6MAONMGtZB1fRX8/S1AhUTtsuTlcGovbYLxpHgc7wEzstDZBw==} 521 | engines: {node: '>= 14.0.0'} 522 | 523 | birpc@0.2.19: 524 | resolution: {integrity: sha512-5WeXXAvTmitV1RqJFppT5QtUiz2p1mRSYU000Jkft5ZUCLJIk4uQriYNO50HknxKwM6jd8utNc66K1qGIwwWBQ==} 525 | 526 | ccount@2.0.1: 527 | resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} 528 | 529 | character-entities-html4@2.1.0: 530 | resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} 531 | 532 | character-entities-legacy@3.0.0: 533 | resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} 534 | 535 | comma-separated-tokens@2.0.3: 536 | resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} 537 | 538 | copy-anything@3.0.5: 539 | resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} 540 | engines: {node: '>=12.13'} 541 | 542 | csstype@3.1.3: 543 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 544 | 545 | dequal@2.0.3: 546 | resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} 547 | engines: {node: '>=6'} 548 | 549 | devlop@1.1.0: 550 | resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} 551 | 552 | emoji-regex-xs@1.0.0: 553 | resolution: {integrity: sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==} 554 | 555 | entities@4.5.0: 556 | resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} 557 | engines: {node: '>=0.12'} 558 | 559 | esbuild@0.21.5: 560 | resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} 561 | engines: {node: '>=12'} 562 | hasBin: true 563 | 564 | estree-walker@2.0.2: 565 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 566 | 567 | focus-trap@7.6.2: 568 | resolution: {integrity: sha512-9FhUxK1hVju2+AiQIDJ5Dd//9R2n2RAfJ0qfhF4IHGHgcoEUTMpbTeG/zbEuwaiYXfuAH6XE0/aCyxDdRM+W5w==} 569 | 570 | fsevents@2.3.3: 571 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 572 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 573 | os: [darwin] 574 | 575 | hast-util-to-html@9.0.3: 576 | resolution: {integrity: sha512-M17uBDzMJ9RPCqLMO92gNNUDuBSq10a25SDBI08iCCxmorf4Yy6sYHK57n9WAbRAAaU+DuR4W6GN9K4DFZesYg==} 577 | 578 | hast-util-whitespace@3.0.0: 579 | resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} 580 | 581 | hookable@5.5.3: 582 | resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} 583 | 584 | html-void-elements@3.0.0: 585 | resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} 586 | 587 | is-what@4.1.16: 588 | resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} 589 | engines: {node: '>=12.13'} 590 | 591 | magic-string@0.30.14: 592 | resolution: {integrity: sha512-5c99P1WKTed11ZC0HMJOj6CDIue6F8ySu+bJL+85q1zBEIY8IklrJ1eiKC2NDRh3Ct3FcvmJPyQHb9erXMTJNw==} 593 | 594 | mark.js@8.11.1: 595 | resolution: {integrity: sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==} 596 | 597 | mdast-util-to-hast@13.2.0: 598 | resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} 599 | 600 | micromark-util-character@2.1.1: 601 | resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} 602 | 603 | micromark-util-encode@2.0.1: 604 | resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} 605 | 606 | micromark-util-sanitize-uri@2.0.1: 607 | resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} 608 | 609 | micromark-util-symbol@2.0.1: 610 | resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} 611 | 612 | micromark-util-types@2.0.1: 613 | resolution: {integrity: sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==} 614 | 615 | minisearch@7.1.1: 616 | resolution: {integrity: sha512-b3YZEYCEH4EdCAtYP7OlDyx7FdPwNzuNwLQ34SfJpM9dlbBZzeXndGavTrC+VCiRWomL21SWfMc6SCKO/U2ZNw==} 617 | 618 | mitt@3.0.1: 619 | resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} 620 | 621 | nanoid@3.3.7: 622 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} 623 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 624 | hasBin: true 625 | 626 | oniguruma-to-es@0.4.1: 627 | resolution: {integrity: sha512-rNcEohFz095QKGRovP/yqPIKc+nP+Sjs4YTHMv33nMePGKrq/r2eu9Yh4646M5XluGJsUnmwoXuiXE69KDs+fQ==} 628 | 629 | perfect-debounce@1.0.0: 630 | resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} 631 | 632 | picocolors@1.1.1: 633 | resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 634 | 635 | postcss@8.4.49: 636 | resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} 637 | engines: {node: ^10 || ^12 || >=14} 638 | 639 | preact@10.21.0: 640 | resolution: {integrity: sha512-aQAIxtzWEwH8ou+OovWVSVNlFImL7xUCwJX3YMqA3U8iKCNC34999fFOnWjYNsylgfPgMexpbk7WYOLtKr/mxg==} 641 | 642 | property-information@6.5.0: 643 | resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} 644 | 645 | regex-recursion@4.2.1: 646 | resolution: {integrity: sha512-QHNZyZAeKdndD1G3bKAbBEKOSSK4KOHQrAJ01N1LJeb0SoH4DJIeFhp0uUpETgONifS4+P3sOgoA1dhzgrQvhA==} 647 | 648 | regex-utilities@2.3.0: 649 | resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} 650 | 651 | regex@5.0.2: 652 | resolution: {integrity: sha512-/pczGbKIQgfTMRV0XjABvc5RzLqQmwqxLHdQao2RTXPk+pmTXB2P0IaUHYdYyk412YLwUIkaeMd5T+RzVgTqnQ==} 653 | 654 | rfdc@1.4.1: 655 | resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} 656 | 657 | rollup@4.27.4: 658 | resolution: {integrity: sha512-RLKxqHEMjh/RGLsDxAEsaLO3mWgyoU6x9w6n1ikAzet4B3gI2/3yP6PWY2p9QzRTh6MfEIXB3MwsOY0Iv3vNrw==} 659 | engines: {node: '>=18.0.0', npm: '>=8.0.0'} 660 | hasBin: true 661 | 662 | search-insights@2.13.0: 663 | resolution: {integrity: sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==} 664 | 665 | shiki@1.23.1: 666 | resolution: {integrity: sha512-8kxV9TH4pXgdKGxNOkrSMydn1Xf6It8lsle0fiqxf7a1149K1WGtdOu3Zb91T5r1JpvRPxqxU3C2XdZZXQnrig==} 667 | 668 | source-map-js@1.2.0: 669 | resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} 670 | engines: {node: '>=0.10.0'} 671 | 672 | source-map-js@1.2.1: 673 | resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 674 | engines: {node: '>=0.10.0'} 675 | 676 | space-separated-tokens@2.0.2: 677 | resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} 678 | 679 | speakingurl@14.0.1: 680 | resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} 681 | engines: {node: '>=0.10.0'} 682 | 683 | stringify-entities@4.0.4: 684 | resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} 685 | 686 | superjson@2.2.1: 687 | resolution: {integrity: sha512-8iGv75BYOa0xRJHK5vRLEjE2H/i4lulTjzpUXic3Eg8akftYjkmQDa8JARQ42rlczXyFR3IeRoeFCc7RxHsYZA==} 688 | engines: {node: '>=16'} 689 | 690 | tabbable@6.2.0: 691 | resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} 692 | 693 | trim-lines@3.0.1: 694 | resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} 695 | 696 | unist-util-is@6.0.0: 697 | resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} 698 | 699 | unist-util-position@5.0.0: 700 | resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} 701 | 702 | unist-util-stringify-position@4.0.0: 703 | resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} 704 | 705 | unist-util-visit-parents@6.0.1: 706 | resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} 707 | 708 | unist-util-visit@5.0.0: 709 | resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} 710 | 711 | vfile-message@4.0.2: 712 | resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} 713 | 714 | vfile@6.0.3: 715 | resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} 716 | 717 | vite@5.4.11: 718 | resolution: {integrity: sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==} 719 | engines: {node: ^18.0.0 || >=20.0.0} 720 | hasBin: true 721 | peerDependencies: 722 | '@types/node': ^18.0.0 || >=20.0.0 723 | less: '*' 724 | lightningcss: ^1.21.0 725 | sass: '*' 726 | sass-embedded: '*' 727 | stylus: '*' 728 | sugarss: '*' 729 | terser: ^5.4.0 730 | peerDependenciesMeta: 731 | '@types/node': 732 | optional: true 733 | less: 734 | optional: true 735 | lightningcss: 736 | optional: true 737 | sass: 738 | optional: true 739 | sass-embedded: 740 | optional: true 741 | stylus: 742 | optional: true 743 | sugarss: 744 | optional: true 745 | terser: 746 | optional: true 747 | 748 | vitepress@1.5.0: 749 | resolution: {integrity: sha512-q4Q/G2zjvynvizdB3/bupdYkCJe2umSAMv9Ju4d92E6/NXJ59z70xB0q5p/4lpRyAwflDsbwy1mLV9Q5+nlB+g==} 750 | hasBin: true 751 | peerDependencies: 752 | markdown-it-mathjax3: ^4 753 | postcss: ^8 754 | peerDependenciesMeta: 755 | markdown-it-mathjax3: 756 | optional: true 757 | postcss: 758 | optional: true 759 | 760 | vue-demi@0.14.10: 761 | resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==} 762 | engines: {node: '>=12'} 763 | hasBin: true 764 | peerDependencies: 765 | '@vue/composition-api': ^1.0.0-rc.1 766 | vue: ^3.0.0-0 || ^2.6.0 767 | peerDependenciesMeta: 768 | '@vue/composition-api': 769 | optional: true 770 | 771 | vue@3.5.13: 772 | resolution: {integrity: sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==} 773 | peerDependencies: 774 | typescript: '*' 775 | peerDependenciesMeta: 776 | typescript: 777 | optional: true 778 | 779 | zwitch@2.0.4: 780 | resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} 781 | 782 | snapshots: 783 | 784 | '@algolia/autocomplete-core@1.17.7(@algolia/client-search@5.15.0)(algoliasearch@5.15.0)(search-insights@2.13.0)': 785 | dependencies: 786 | '@algolia/autocomplete-plugin-algolia-insights': 1.17.7(@algolia/client-search@5.15.0)(algoliasearch@5.15.0)(search-insights@2.13.0) 787 | '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.15.0)(algoliasearch@5.15.0) 788 | transitivePeerDependencies: 789 | - '@algolia/client-search' 790 | - algoliasearch 791 | - search-insights 792 | 793 | '@algolia/autocomplete-plugin-algolia-insights@1.17.7(@algolia/client-search@5.15.0)(algoliasearch@5.15.0)(search-insights@2.13.0)': 794 | dependencies: 795 | '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.15.0)(algoliasearch@5.15.0) 796 | search-insights: 2.13.0 797 | transitivePeerDependencies: 798 | - '@algolia/client-search' 799 | - algoliasearch 800 | 801 | '@algolia/autocomplete-preset-algolia@1.17.7(@algolia/client-search@5.15.0)(algoliasearch@5.15.0)': 802 | dependencies: 803 | '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.15.0)(algoliasearch@5.15.0) 804 | '@algolia/client-search': 5.15.0 805 | algoliasearch: 5.15.0 806 | 807 | '@algolia/autocomplete-shared@1.17.7(@algolia/client-search@5.15.0)(algoliasearch@5.15.0)': 808 | dependencies: 809 | '@algolia/client-search': 5.15.0 810 | algoliasearch: 5.15.0 811 | 812 | '@algolia/client-abtesting@5.15.0': 813 | dependencies: 814 | '@algolia/client-common': 5.15.0 815 | '@algolia/requester-browser-xhr': 5.15.0 816 | '@algolia/requester-fetch': 5.15.0 817 | '@algolia/requester-node-http': 5.15.0 818 | 819 | '@algolia/client-analytics@5.15.0': 820 | dependencies: 821 | '@algolia/client-common': 5.15.0 822 | '@algolia/requester-browser-xhr': 5.15.0 823 | '@algolia/requester-fetch': 5.15.0 824 | '@algolia/requester-node-http': 5.15.0 825 | 826 | '@algolia/client-common@5.15.0': {} 827 | 828 | '@algolia/client-insights@5.15.0': 829 | dependencies: 830 | '@algolia/client-common': 5.15.0 831 | '@algolia/requester-browser-xhr': 5.15.0 832 | '@algolia/requester-fetch': 5.15.0 833 | '@algolia/requester-node-http': 5.15.0 834 | 835 | '@algolia/client-personalization@5.15.0': 836 | dependencies: 837 | '@algolia/client-common': 5.15.0 838 | '@algolia/requester-browser-xhr': 5.15.0 839 | '@algolia/requester-fetch': 5.15.0 840 | '@algolia/requester-node-http': 5.15.0 841 | 842 | '@algolia/client-query-suggestions@5.15.0': 843 | dependencies: 844 | '@algolia/client-common': 5.15.0 845 | '@algolia/requester-browser-xhr': 5.15.0 846 | '@algolia/requester-fetch': 5.15.0 847 | '@algolia/requester-node-http': 5.15.0 848 | 849 | '@algolia/client-search@5.15.0': 850 | dependencies: 851 | '@algolia/client-common': 5.15.0 852 | '@algolia/requester-browser-xhr': 5.15.0 853 | '@algolia/requester-fetch': 5.15.0 854 | '@algolia/requester-node-http': 5.15.0 855 | 856 | '@algolia/ingestion@1.15.0': 857 | dependencies: 858 | '@algolia/client-common': 5.15.0 859 | '@algolia/requester-browser-xhr': 5.15.0 860 | '@algolia/requester-fetch': 5.15.0 861 | '@algolia/requester-node-http': 5.15.0 862 | 863 | '@algolia/monitoring@1.15.0': 864 | dependencies: 865 | '@algolia/client-common': 5.15.0 866 | '@algolia/requester-browser-xhr': 5.15.0 867 | '@algolia/requester-fetch': 5.15.0 868 | '@algolia/requester-node-http': 5.15.0 869 | 870 | '@algolia/recommend@5.15.0': 871 | dependencies: 872 | '@algolia/client-common': 5.15.0 873 | '@algolia/requester-browser-xhr': 5.15.0 874 | '@algolia/requester-fetch': 5.15.0 875 | '@algolia/requester-node-http': 5.15.0 876 | 877 | '@algolia/requester-browser-xhr@5.15.0': 878 | dependencies: 879 | '@algolia/client-common': 5.15.0 880 | 881 | '@algolia/requester-fetch@5.15.0': 882 | dependencies: 883 | '@algolia/client-common': 5.15.0 884 | 885 | '@algolia/requester-node-http@5.15.0': 886 | dependencies: 887 | '@algolia/client-common': 5.15.0 888 | 889 | '@babel/helper-string-parser@7.25.9': {} 890 | 891 | '@babel/helper-validator-identifier@7.25.9': {} 892 | 893 | '@babel/parser@7.26.2': 894 | dependencies: 895 | '@babel/types': 7.26.0 896 | 897 | '@babel/types@7.26.0': 898 | dependencies: 899 | '@babel/helper-string-parser': 7.25.9 900 | '@babel/helper-validator-identifier': 7.25.9 901 | 902 | '@docsearch/css@3.8.0': {} 903 | 904 | '@docsearch/js@3.8.0(@algolia/client-search@5.15.0)(search-insights@2.13.0)': 905 | dependencies: 906 | '@docsearch/react': 3.8.0(@algolia/client-search@5.15.0)(search-insights@2.13.0) 907 | preact: 10.21.0 908 | transitivePeerDependencies: 909 | - '@algolia/client-search' 910 | - '@types/react' 911 | - react 912 | - react-dom 913 | - search-insights 914 | 915 | '@docsearch/react@3.8.0(@algolia/client-search@5.15.0)(search-insights@2.13.0)': 916 | dependencies: 917 | '@algolia/autocomplete-core': 1.17.7(@algolia/client-search@5.15.0)(algoliasearch@5.15.0)(search-insights@2.13.0) 918 | '@algolia/autocomplete-preset-algolia': 1.17.7(@algolia/client-search@5.15.0)(algoliasearch@5.15.0) 919 | '@docsearch/css': 3.8.0 920 | algoliasearch: 5.15.0 921 | optionalDependencies: 922 | search-insights: 2.13.0 923 | transitivePeerDependencies: 924 | - '@algolia/client-search' 925 | 926 | '@esbuild/aix-ppc64@0.21.5': 927 | optional: true 928 | 929 | '@esbuild/android-arm64@0.21.5': 930 | optional: true 931 | 932 | '@esbuild/android-arm@0.21.5': 933 | optional: true 934 | 935 | '@esbuild/android-x64@0.21.5': 936 | optional: true 937 | 938 | '@esbuild/darwin-arm64@0.21.5': 939 | optional: true 940 | 941 | '@esbuild/darwin-x64@0.21.5': 942 | optional: true 943 | 944 | '@esbuild/freebsd-arm64@0.21.5': 945 | optional: true 946 | 947 | '@esbuild/freebsd-x64@0.21.5': 948 | optional: true 949 | 950 | '@esbuild/linux-arm64@0.21.5': 951 | optional: true 952 | 953 | '@esbuild/linux-arm@0.21.5': 954 | optional: true 955 | 956 | '@esbuild/linux-ia32@0.21.5': 957 | optional: true 958 | 959 | '@esbuild/linux-loong64@0.21.5': 960 | optional: true 961 | 962 | '@esbuild/linux-mips64el@0.21.5': 963 | optional: true 964 | 965 | '@esbuild/linux-ppc64@0.21.5': 966 | optional: true 967 | 968 | '@esbuild/linux-riscv64@0.21.5': 969 | optional: true 970 | 971 | '@esbuild/linux-s390x@0.21.5': 972 | optional: true 973 | 974 | '@esbuild/linux-x64@0.21.5': 975 | optional: true 976 | 977 | '@esbuild/netbsd-x64@0.21.5': 978 | optional: true 979 | 980 | '@esbuild/openbsd-x64@0.21.5': 981 | optional: true 982 | 983 | '@esbuild/sunos-x64@0.21.5': 984 | optional: true 985 | 986 | '@esbuild/win32-arm64@0.21.5': 987 | optional: true 988 | 989 | '@esbuild/win32-ia32@0.21.5': 990 | optional: true 991 | 992 | '@esbuild/win32-x64@0.21.5': 993 | optional: true 994 | 995 | '@iconify-json/simple-icons@1.2.13': 996 | dependencies: 997 | '@iconify/types': 2.0.0 998 | 999 | '@iconify/types@2.0.0': {} 1000 | 1001 | '@jridgewell/sourcemap-codec@1.5.0': {} 1002 | 1003 | '@rollup/rollup-android-arm-eabi@4.27.4': 1004 | optional: true 1005 | 1006 | '@rollup/rollup-android-arm64@4.27.4': 1007 | optional: true 1008 | 1009 | '@rollup/rollup-darwin-arm64@4.27.4': 1010 | optional: true 1011 | 1012 | '@rollup/rollup-darwin-x64@4.27.4': 1013 | optional: true 1014 | 1015 | '@rollup/rollup-freebsd-arm64@4.27.4': 1016 | optional: true 1017 | 1018 | '@rollup/rollup-freebsd-x64@4.27.4': 1019 | optional: true 1020 | 1021 | '@rollup/rollup-linux-arm-gnueabihf@4.27.4': 1022 | optional: true 1023 | 1024 | '@rollup/rollup-linux-arm-musleabihf@4.27.4': 1025 | optional: true 1026 | 1027 | '@rollup/rollup-linux-arm64-gnu@4.27.4': 1028 | optional: true 1029 | 1030 | '@rollup/rollup-linux-arm64-musl@4.27.4': 1031 | optional: true 1032 | 1033 | '@rollup/rollup-linux-powerpc64le-gnu@4.27.4': 1034 | optional: true 1035 | 1036 | '@rollup/rollup-linux-riscv64-gnu@4.27.4': 1037 | optional: true 1038 | 1039 | '@rollup/rollup-linux-s390x-gnu@4.27.4': 1040 | optional: true 1041 | 1042 | '@rollup/rollup-linux-x64-gnu@4.27.4': 1043 | optional: true 1044 | 1045 | '@rollup/rollup-linux-x64-musl@4.27.4': 1046 | optional: true 1047 | 1048 | '@rollup/rollup-win32-arm64-msvc@4.27.4': 1049 | optional: true 1050 | 1051 | '@rollup/rollup-win32-ia32-msvc@4.27.4': 1052 | optional: true 1053 | 1054 | '@rollup/rollup-win32-x64-msvc@4.27.4': 1055 | optional: true 1056 | 1057 | '@shikijs/core@1.23.1': 1058 | dependencies: 1059 | '@shikijs/engine-javascript': 1.23.1 1060 | '@shikijs/engine-oniguruma': 1.23.1 1061 | '@shikijs/types': 1.23.1 1062 | '@shikijs/vscode-textmate': 9.3.0 1063 | '@types/hast': 3.0.4 1064 | hast-util-to-html: 9.0.3 1065 | 1066 | '@shikijs/engine-javascript@1.23.1': 1067 | dependencies: 1068 | '@shikijs/types': 1.23.1 1069 | '@shikijs/vscode-textmate': 9.3.0 1070 | oniguruma-to-es: 0.4.1 1071 | 1072 | '@shikijs/engine-oniguruma@1.23.1': 1073 | dependencies: 1074 | '@shikijs/types': 1.23.1 1075 | '@shikijs/vscode-textmate': 9.3.0 1076 | 1077 | '@shikijs/transformers@1.23.1': 1078 | dependencies: 1079 | shiki: 1.23.1 1080 | 1081 | '@shikijs/types@1.23.1': 1082 | dependencies: 1083 | '@shikijs/vscode-textmate': 9.3.0 1084 | '@types/hast': 3.0.4 1085 | 1086 | '@shikijs/vscode-textmate@9.3.0': {} 1087 | 1088 | '@types/estree@1.0.6': {} 1089 | 1090 | '@types/hast@3.0.4': 1091 | dependencies: 1092 | '@types/unist': 3.0.3 1093 | 1094 | '@types/linkify-it@5.0.0': {} 1095 | 1096 | '@types/markdown-it@14.1.2': 1097 | dependencies: 1098 | '@types/linkify-it': 5.0.0 1099 | '@types/mdurl': 2.0.0 1100 | 1101 | '@types/mdast@4.0.4': 1102 | dependencies: 1103 | '@types/unist': 3.0.3 1104 | 1105 | '@types/mdurl@2.0.0': {} 1106 | 1107 | '@types/unist@3.0.3': {} 1108 | 1109 | '@types/web-bluetooth@0.0.20': {} 1110 | 1111 | '@ungap/structured-clone@1.2.0': {} 1112 | 1113 | '@vitejs/plugin-vue@5.2.1(vite@5.4.11)(vue@3.5.13)': 1114 | dependencies: 1115 | vite: 5.4.11 1116 | vue: 3.5.13 1117 | 1118 | '@vue/compiler-core@3.5.13': 1119 | dependencies: 1120 | '@babel/parser': 7.26.2 1121 | '@vue/shared': 3.5.13 1122 | entities: 4.5.0 1123 | estree-walker: 2.0.2 1124 | source-map-js: 1.2.0 1125 | 1126 | '@vue/compiler-dom@3.5.13': 1127 | dependencies: 1128 | '@vue/compiler-core': 3.5.13 1129 | '@vue/shared': 3.5.13 1130 | 1131 | '@vue/compiler-sfc@3.5.13': 1132 | dependencies: 1133 | '@babel/parser': 7.26.2 1134 | '@vue/compiler-core': 3.5.13 1135 | '@vue/compiler-dom': 3.5.13 1136 | '@vue/compiler-ssr': 3.5.13 1137 | '@vue/shared': 3.5.13 1138 | estree-walker: 2.0.2 1139 | magic-string: 0.30.14 1140 | postcss: 8.4.49 1141 | source-map-js: 1.2.0 1142 | 1143 | '@vue/compiler-ssr@3.5.13': 1144 | dependencies: 1145 | '@vue/compiler-dom': 3.5.13 1146 | '@vue/shared': 3.5.13 1147 | 1148 | '@vue/devtools-api@7.6.4': 1149 | dependencies: 1150 | '@vue/devtools-kit': 7.6.4 1151 | 1152 | '@vue/devtools-kit@7.6.4': 1153 | dependencies: 1154 | '@vue/devtools-shared': 7.6.4 1155 | birpc: 0.2.19 1156 | hookable: 5.5.3 1157 | mitt: 3.0.1 1158 | perfect-debounce: 1.0.0 1159 | speakingurl: 14.0.1 1160 | superjson: 2.2.1 1161 | 1162 | '@vue/devtools-shared@7.6.4': 1163 | dependencies: 1164 | rfdc: 1.4.1 1165 | 1166 | '@vue/reactivity@3.5.13': 1167 | dependencies: 1168 | '@vue/shared': 3.5.13 1169 | 1170 | '@vue/runtime-core@3.5.13': 1171 | dependencies: 1172 | '@vue/reactivity': 3.5.13 1173 | '@vue/shared': 3.5.13 1174 | 1175 | '@vue/runtime-dom@3.5.13': 1176 | dependencies: 1177 | '@vue/reactivity': 3.5.13 1178 | '@vue/runtime-core': 3.5.13 1179 | '@vue/shared': 3.5.13 1180 | csstype: 3.1.3 1181 | 1182 | '@vue/server-renderer@3.5.13(vue@3.5.13)': 1183 | dependencies: 1184 | '@vue/compiler-ssr': 3.5.13 1185 | '@vue/shared': 3.5.13 1186 | vue: 3.5.13 1187 | 1188 | '@vue/shared@3.5.13': {} 1189 | 1190 | '@vueuse/core@11.3.0(vue@3.5.13)': 1191 | dependencies: 1192 | '@types/web-bluetooth': 0.0.20 1193 | '@vueuse/metadata': 11.3.0 1194 | '@vueuse/shared': 11.3.0(vue@3.5.13) 1195 | vue-demi: 0.14.10(vue@3.5.13) 1196 | transitivePeerDependencies: 1197 | - '@vue/composition-api' 1198 | - vue 1199 | 1200 | '@vueuse/integrations@11.3.0(focus-trap@7.6.2)(vue@3.5.13)': 1201 | dependencies: 1202 | '@vueuse/core': 11.3.0(vue@3.5.13) 1203 | '@vueuse/shared': 11.3.0(vue@3.5.13) 1204 | vue-demi: 0.14.10(vue@3.5.13) 1205 | optionalDependencies: 1206 | focus-trap: 7.6.2 1207 | transitivePeerDependencies: 1208 | - '@vue/composition-api' 1209 | - vue 1210 | 1211 | '@vueuse/metadata@11.3.0': {} 1212 | 1213 | '@vueuse/shared@11.3.0(vue@3.5.13)': 1214 | dependencies: 1215 | vue-demi: 0.14.10(vue@3.5.13) 1216 | transitivePeerDependencies: 1217 | - '@vue/composition-api' 1218 | - vue 1219 | 1220 | algoliasearch@5.15.0: 1221 | dependencies: 1222 | '@algolia/client-abtesting': 5.15.0 1223 | '@algolia/client-analytics': 5.15.0 1224 | '@algolia/client-common': 5.15.0 1225 | '@algolia/client-insights': 5.15.0 1226 | '@algolia/client-personalization': 5.15.0 1227 | '@algolia/client-query-suggestions': 5.15.0 1228 | '@algolia/client-search': 5.15.0 1229 | '@algolia/ingestion': 1.15.0 1230 | '@algolia/monitoring': 1.15.0 1231 | '@algolia/recommend': 5.15.0 1232 | '@algolia/requester-browser-xhr': 5.15.0 1233 | '@algolia/requester-fetch': 5.15.0 1234 | '@algolia/requester-node-http': 5.15.0 1235 | 1236 | birpc@0.2.19: {} 1237 | 1238 | ccount@2.0.1: {} 1239 | 1240 | character-entities-html4@2.1.0: {} 1241 | 1242 | character-entities-legacy@3.0.0: {} 1243 | 1244 | comma-separated-tokens@2.0.3: {} 1245 | 1246 | copy-anything@3.0.5: 1247 | dependencies: 1248 | is-what: 4.1.16 1249 | 1250 | csstype@3.1.3: {} 1251 | 1252 | dequal@2.0.3: {} 1253 | 1254 | devlop@1.1.0: 1255 | dependencies: 1256 | dequal: 2.0.3 1257 | 1258 | emoji-regex-xs@1.0.0: {} 1259 | 1260 | entities@4.5.0: {} 1261 | 1262 | esbuild@0.21.5: 1263 | optionalDependencies: 1264 | '@esbuild/aix-ppc64': 0.21.5 1265 | '@esbuild/android-arm': 0.21.5 1266 | '@esbuild/android-arm64': 0.21.5 1267 | '@esbuild/android-x64': 0.21.5 1268 | '@esbuild/darwin-arm64': 0.21.5 1269 | '@esbuild/darwin-x64': 0.21.5 1270 | '@esbuild/freebsd-arm64': 0.21.5 1271 | '@esbuild/freebsd-x64': 0.21.5 1272 | '@esbuild/linux-arm': 0.21.5 1273 | '@esbuild/linux-arm64': 0.21.5 1274 | '@esbuild/linux-ia32': 0.21.5 1275 | '@esbuild/linux-loong64': 0.21.5 1276 | '@esbuild/linux-mips64el': 0.21.5 1277 | '@esbuild/linux-ppc64': 0.21.5 1278 | '@esbuild/linux-riscv64': 0.21.5 1279 | '@esbuild/linux-s390x': 0.21.5 1280 | '@esbuild/linux-x64': 0.21.5 1281 | '@esbuild/netbsd-x64': 0.21.5 1282 | '@esbuild/openbsd-x64': 0.21.5 1283 | '@esbuild/sunos-x64': 0.21.5 1284 | '@esbuild/win32-arm64': 0.21.5 1285 | '@esbuild/win32-ia32': 0.21.5 1286 | '@esbuild/win32-x64': 0.21.5 1287 | 1288 | estree-walker@2.0.2: {} 1289 | 1290 | focus-trap@7.6.2: 1291 | dependencies: 1292 | tabbable: 6.2.0 1293 | 1294 | fsevents@2.3.3: 1295 | optional: true 1296 | 1297 | hast-util-to-html@9.0.3: 1298 | dependencies: 1299 | '@types/hast': 3.0.4 1300 | '@types/unist': 3.0.3 1301 | ccount: 2.0.1 1302 | comma-separated-tokens: 2.0.3 1303 | hast-util-whitespace: 3.0.0 1304 | html-void-elements: 3.0.0 1305 | mdast-util-to-hast: 13.2.0 1306 | property-information: 6.5.0 1307 | space-separated-tokens: 2.0.2 1308 | stringify-entities: 4.0.4 1309 | zwitch: 2.0.4 1310 | 1311 | hast-util-whitespace@3.0.0: 1312 | dependencies: 1313 | '@types/hast': 3.0.4 1314 | 1315 | hookable@5.5.3: {} 1316 | 1317 | html-void-elements@3.0.0: {} 1318 | 1319 | is-what@4.1.16: {} 1320 | 1321 | magic-string@0.30.14: 1322 | dependencies: 1323 | '@jridgewell/sourcemap-codec': 1.5.0 1324 | 1325 | mark.js@8.11.1: {} 1326 | 1327 | mdast-util-to-hast@13.2.0: 1328 | dependencies: 1329 | '@types/hast': 3.0.4 1330 | '@types/mdast': 4.0.4 1331 | '@ungap/structured-clone': 1.2.0 1332 | devlop: 1.1.0 1333 | micromark-util-sanitize-uri: 2.0.1 1334 | trim-lines: 3.0.1 1335 | unist-util-position: 5.0.0 1336 | unist-util-visit: 5.0.0 1337 | vfile: 6.0.3 1338 | 1339 | micromark-util-character@2.1.1: 1340 | dependencies: 1341 | micromark-util-symbol: 2.0.1 1342 | micromark-util-types: 2.0.1 1343 | 1344 | micromark-util-encode@2.0.1: {} 1345 | 1346 | micromark-util-sanitize-uri@2.0.1: 1347 | dependencies: 1348 | micromark-util-character: 2.1.1 1349 | micromark-util-encode: 2.0.1 1350 | micromark-util-symbol: 2.0.1 1351 | 1352 | micromark-util-symbol@2.0.1: {} 1353 | 1354 | micromark-util-types@2.0.1: {} 1355 | 1356 | minisearch@7.1.1: {} 1357 | 1358 | mitt@3.0.1: {} 1359 | 1360 | nanoid@3.3.7: {} 1361 | 1362 | oniguruma-to-es@0.4.1: 1363 | dependencies: 1364 | emoji-regex-xs: 1.0.0 1365 | regex: 5.0.2 1366 | regex-recursion: 4.2.1 1367 | 1368 | perfect-debounce@1.0.0: {} 1369 | 1370 | picocolors@1.1.1: {} 1371 | 1372 | postcss@8.4.49: 1373 | dependencies: 1374 | nanoid: 3.3.7 1375 | picocolors: 1.1.1 1376 | source-map-js: 1.2.1 1377 | 1378 | preact@10.21.0: {} 1379 | 1380 | property-information@6.5.0: {} 1381 | 1382 | regex-recursion@4.2.1: 1383 | dependencies: 1384 | regex-utilities: 2.3.0 1385 | 1386 | regex-utilities@2.3.0: {} 1387 | 1388 | regex@5.0.2: 1389 | dependencies: 1390 | regex-utilities: 2.3.0 1391 | 1392 | rfdc@1.4.1: {} 1393 | 1394 | rollup@4.27.4: 1395 | dependencies: 1396 | '@types/estree': 1.0.6 1397 | optionalDependencies: 1398 | '@rollup/rollup-android-arm-eabi': 4.27.4 1399 | '@rollup/rollup-android-arm64': 4.27.4 1400 | '@rollup/rollup-darwin-arm64': 4.27.4 1401 | '@rollup/rollup-darwin-x64': 4.27.4 1402 | '@rollup/rollup-freebsd-arm64': 4.27.4 1403 | '@rollup/rollup-freebsd-x64': 4.27.4 1404 | '@rollup/rollup-linux-arm-gnueabihf': 4.27.4 1405 | '@rollup/rollup-linux-arm-musleabihf': 4.27.4 1406 | '@rollup/rollup-linux-arm64-gnu': 4.27.4 1407 | '@rollup/rollup-linux-arm64-musl': 4.27.4 1408 | '@rollup/rollup-linux-powerpc64le-gnu': 4.27.4 1409 | '@rollup/rollup-linux-riscv64-gnu': 4.27.4 1410 | '@rollup/rollup-linux-s390x-gnu': 4.27.4 1411 | '@rollup/rollup-linux-x64-gnu': 4.27.4 1412 | '@rollup/rollup-linux-x64-musl': 4.27.4 1413 | '@rollup/rollup-win32-arm64-msvc': 4.27.4 1414 | '@rollup/rollup-win32-ia32-msvc': 4.27.4 1415 | '@rollup/rollup-win32-x64-msvc': 4.27.4 1416 | fsevents: 2.3.3 1417 | 1418 | search-insights@2.13.0: {} 1419 | 1420 | shiki@1.23.1: 1421 | dependencies: 1422 | '@shikijs/core': 1.23.1 1423 | '@shikijs/engine-javascript': 1.23.1 1424 | '@shikijs/engine-oniguruma': 1.23.1 1425 | '@shikijs/types': 1.23.1 1426 | '@shikijs/vscode-textmate': 9.3.0 1427 | '@types/hast': 3.0.4 1428 | 1429 | source-map-js@1.2.0: {} 1430 | 1431 | source-map-js@1.2.1: {} 1432 | 1433 | space-separated-tokens@2.0.2: {} 1434 | 1435 | speakingurl@14.0.1: {} 1436 | 1437 | stringify-entities@4.0.4: 1438 | dependencies: 1439 | character-entities-html4: 2.1.0 1440 | character-entities-legacy: 3.0.0 1441 | 1442 | superjson@2.2.1: 1443 | dependencies: 1444 | copy-anything: 3.0.5 1445 | 1446 | tabbable@6.2.0: {} 1447 | 1448 | trim-lines@3.0.1: {} 1449 | 1450 | unist-util-is@6.0.0: 1451 | dependencies: 1452 | '@types/unist': 3.0.3 1453 | 1454 | unist-util-position@5.0.0: 1455 | dependencies: 1456 | '@types/unist': 3.0.3 1457 | 1458 | unist-util-stringify-position@4.0.0: 1459 | dependencies: 1460 | '@types/unist': 3.0.3 1461 | 1462 | unist-util-visit-parents@6.0.1: 1463 | dependencies: 1464 | '@types/unist': 3.0.3 1465 | unist-util-is: 6.0.0 1466 | 1467 | unist-util-visit@5.0.0: 1468 | dependencies: 1469 | '@types/unist': 3.0.3 1470 | unist-util-is: 6.0.0 1471 | unist-util-visit-parents: 6.0.1 1472 | 1473 | vfile-message@4.0.2: 1474 | dependencies: 1475 | '@types/unist': 3.0.3 1476 | unist-util-stringify-position: 4.0.0 1477 | 1478 | vfile@6.0.3: 1479 | dependencies: 1480 | '@types/unist': 3.0.3 1481 | vfile-message: 4.0.2 1482 | 1483 | vite@5.4.11: 1484 | dependencies: 1485 | esbuild: 0.21.5 1486 | postcss: 8.4.49 1487 | rollup: 4.27.4 1488 | optionalDependencies: 1489 | fsevents: 2.3.3 1490 | 1491 | vitepress@1.5.0(@algolia/client-search@5.15.0)(postcss@8.4.49)(search-insights@2.13.0): 1492 | dependencies: 1493 | '@docsearch/css': 3.8.0 1494 | '@docsearch/js': 3.8.0(@algolia/client-search@5.15.0)(search-insights@2.13.0) 1495 | '@iconify-json/simple-icons': 1.2.13 1496 | '@shikijs/core': 1.23.1 1497 | '@shikijs/transformers': 1.23.1 1498 | '@shikijs/types': 1.23.1 1499 | '@types/markdown-it': 14.1.2 1500 | '@vitejs/plugin-vue': 5.2.1(vite@5.4.11)(vue@3.5.13) 1501 | '@vue/devtools-api': 7.6.4 1502 | '@vue/shared': 3.5.13 1503 | '@vueuse/core': 11.3.0(vue@3.5.13) 1504 | '@vueuse/integrations': 11.3.0(focus-trap@7.6.2)(vue@3.5.13) 1505 | focus-trap: 7.6.2 1506 | mark.js: 8.11.1 1507 | minisearch: 7.1.1 1508 | shiki: 1.23.1 1509 | vite: 5.4.11 1510 | vue: 3.5.13 1511 | optionalDependencies: 1512 | postcss: 8.4.49 1513 | transitivePeerDependencies: 1514 | - '@algolia/client-search' 1515 | - '@types/node' 1516 | - '@types/react' 1517 | - '@vue/composition-api' 1518 | - async-validator 1519 | - axios 1520 | - change-case 1521 | - drauu 1522 | - fuse.js 1523 | - idb-keyval 1524 | - jwt-decode 1525 | - less 1526 | - lightningcss 1527 | - nprogress 1528 | - qrcode 1529 | - react 1530 | - react-dom 1531 | - sass 1532 | - sass-embedded 1533 | - search-insights 1534 | - sortablejs 1535 | - stylus 1536 | - sugarss 1537 | - terser 1538 | - typescript 1539 | - universal-cookie 1540 | 1541 | vue-demi@0.14.10(vue@3.5.13): 1542 | dependencies: 1543 | vue: 3.5.13 1544 | 1545 | vue@3.5.13: 1546 | dependencies: 1547 | '@vue/compiler-dom': 3.5.13 1548 | '@vue/compiler-sfc': 3.5.13 1549 | '@vue/runtime-dom': 3.5.13 1550 | '@vue/server-renderer': 3.5.13(vue@3.5.13) 1551 | '@vue/shared': 3.5.13 1552 | 1553 | zwitch@2.0.4: {} 1554 | -------------------------------------------------------------------------------- /src/.vitepress/config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from "vitepress"; 2 | import genSitemap from "./config/gen-sitemap.js"; 3 | 4 | const nav = [ 5 | { text: "首页", link: "/" }, 6 | { text: "指南", link: "/guide/introduction" }, 7 | { text: "参考", link: "/reference/index" }, 8 | { text: "官方网站", link: "https://volta.sh/" }, 9 | ]; 10 | 11 | const sidebar = { 12 | "/guide/": [ 13 | { text: "介绍", link: "/guide/introduction" }, 14 | { text: "快速开始", link: "/guide/getting-start" }, 15 | { text: "了解 Volta", link: "/guide/understanding" }, 16 | ], 17 | "/reference/": [ 18 | { 19 | text: "参考", 20 | items: [ 21 | { text: "volta 命令", link: "/reference/index" }, 22 | { text: "volta fetch", link: "/reference/fetch" }, 23 | { text: "volta install", link: "/reference/install" }, 24 | { text: "volta uninstall", link: "/reference/uninstall" }, 25 | { text: "volta pin", link: "/reference/pin" }, 26 | { text: "volta list", link: "/reference/list" }, 27 | { text: "volta completions", link: "/reference/completions" }, 28 | { text: "volta which", link: "/reference/which" }, 29 | { text: "volta setup", link: "/reference/setup" }, 30 | { text: "volta run", link: "/reference/run" }, 31 | { text: "volta help", link: "/reference/help" }, 32 | ], 33 | }, 34 | { 35 | text: "高级的", 36 | collapsed: true, 37 | items: [ 38 | { text: "Hooks", link: "/reference/advanced/hooks" }, 39 | { 40 | text: "Packages Binaries", 41 | link: "/reference/advanced/packages", 42 | }, 43 | { text: "安装程序", link: "/reference/advanced/installers" }, 44 | { text: "工作区 Workspace", link: "/reference/advanced/workspaces" }, 45 | { text: "卸载 Volta", link: "/reference/advanced/uninstall" }, 46 | { text: "pnpm 支持", link: "/reference/advanced/pnpm" }, 47 | ], 48 | }, 49 | ], 50 | }; 51 | 52 | export default defineConfig({ 53 | lang: "zh-CN", 54 | title: "Volta", // 网站标题 55 | lastUpdated: true, 56 | ignoreDeadLinks: true, 57 | themeConfig: { 58 | nav, 59 | sidebar: sidebar, 60 | lastUpdatedText: "最后更新时间", 61 | outline: [2, 3], 62 | socialLinks: [ 63 | { 64 | icon: "github", 65 | link: "https://github.com/document-translate/volta", 66 | }, 67 | ], 68 | docFooter: { 69 | prev: "上一篇", 70 | next: "下一篇", 71 | }, 72 | search: { 73 | provider: "local", 74 | }, 75 | outlineTitle: "章节目录", 76 | footer: { 77 | message: 78 | "此文档为非官方翻译版本 -
官方网站
", 79 | copyright: "Copyright © 2023-present GuoJiKun", 80 | }, 81 | }, 82 | buildEnd: (siteConfig) => { 83 | const { pages, outDir } = siteConfig; 84 | const conf = { 85 | host: "https://volta.jikun.dev/", 86 | pages, 87 | outDir, 88 | }; 89 | genSitemap(conf); 90 | }, 91 | }); 92 | -------------------------------------------------------------------------------- /src/.vitepress/config/gen-sitemap.js: -------------------------------------------------------------------------------- 1 | import { writeFile } from "node:fs"; 2 | 3 | const genSitemapUrl = (url) => { 4 | const lastmod = new Date().toISOString() + "+08:00"; 5 | 6 | const sitemapUrl = [ 7 | "", 8 | "", 9 | url.replace(/.md$/, ".html"), 10 | "", 11 | "", 12 | lastmod, 13 | "", 14 | "", 15 | ]; 16 | return sitemapUrl.join(""); 17 | }; 18 | 19 | const genSitemapData = (routes, host, excludes = []) => { 20 | const start = ` 21 | `; 26 | 27 | const sitemapUrls = routes 28 | .filter((c) => !excludes.includes(c)) 29 | .map((c) => genSitemapUrl(`${host}${c}`)); 30 | 31 | return `${start}${sitemapUrls.join("")}`; 32 | }; 33 | 34 | /** 35 | * 36 | * @param {string} data sitemap data 37 | * @param {Url} dir 写入目录 38 | * @returns 39 | */ 40 | const writeDir = (data, dir) => { 41 | const path = `${dir}/sitemap.xml`; 42 | return new Promise((resolve, reject) => { 43 | writeFile(path, data, (err) => { 44 | if (err) { 45 | reject(err); 46 | } else { 47 | resolve(); 48 | } 49 | }); 50 | }); 51 | }; 52 | 53 | /** 54 | * @typedef Config 55 | * @property {string[]} pages 路由列表 56 | * @property {string} outDir 输出目录 57 | * @property {string} host 网站域名 58 | * @property {string[]} excludePages 排除的路由 59 | */ 60 | 61 | /** 62 | * 生成sitemap.xml 文件 63 | * @param {Config} conf 64 | */ 65 | const genSitemap = (conf) => { 66 | const { pages, outDir, host, excludePages = [] } = conf; 67 | const sitemapData = genSitemapData(pages, host, excludePages); 68 | writeDir(sitemapData, outDir) 69 | .then(() => { 70 | console.log("Sitemap generated"); 71 | }) 72 | .catch((err) => { 73 | throw err; 74 | }); 75 | }; 76 | 77 | export default genSitemap; 78 | -------------------------------------------------------------------------------- /src/.vitepress/theme/index.css: -------------------------------------------------------------------------------- 1 | /*设置layout:page的样式*/ 2 | #VPContent .VPPage { 3 | max-width: 1100px; 4 | width: 80%; 5 | margin: 0 auto; 6 | } 7 | #VPContent .VPPage h2 { 8 | margin: 1em 0; 9 | } 10 | .VPPage div[class*="language-"] { 11 | position: relative; 12 | margin: 16px -24px; 13 | background-color: var(--vp-code-block-bg); 14 | overflow-x: auto; 15 | transition: background-color 0.5s; 16 | } 17 | 18 | @media (min-width: 640px) { 19 | .VPPage div[class*="language-"] { 20 | border-radius: 8px; 21 | margin: 16px 0; 22 | } 23 | } 24 | 25 | @media (max-width: 639px) { 26 | .VPPage li div[class*="language-"] { 27 | border-radius: 8px 0 0 8px; 28 | } 29 | } 30 | 31 | .VPPage div[class*="language-"] + div[class*="language-"], 32 | .VPPage div[class$="-api"] + div[class*="language-"], 33 | .VPPage div[class*="language-"] + div[class$="-api"] > div[class*="language-"] { 34 | margin-top: -8px; 35 | } 36 | .VPPage [class*="language-"] pre, 37 | .VPPage [class*="language-"] code { 38 | direction: ltr; 39 | text-align: left; 40 | white-space: pre; 41 | word-spacing: normal; 42 | word-break: normal; 43 | word-wrap: normal; 44 | -moz-tab-size: 4; 45 | -o-tab-size: 4; 46 | tab-size: 4; 47 | -webkit-hyphens: none; 48 | -moz-hyphens: none; 49 | -ms-hyphens: none; 50 | hyphens: none; 51 | } 52 | 53 | .VPPage [class*="language-"] pre { 54 | position: relative; 55 | z-index: 1; 56 | margin: 0; 57 | padding: 20px 0; 58 | background: transparent; 59 | overflow-x: auto; 60 | } 61 | 62 | .VPPage [class*="language-"] code { 63 | display: block; 64 | padding: 0 24px; 65 | width: fit-content; 66 | min-width: 100%; 67 | line-height: var(--vp-code-line-height); 68 | font-size: var(--vp-code-font-size); 69 | color: var(--vp-code-block-color); 70 | transition: color 0.5s; 71 | } 72 | 73 | .VPPage [class*="language-"] code .highlighted { 74 | background-color: var(--vp-code-line-highlight-color); 75 | transition: background-color 0.5s; 76 | margin: 0 -24px; 77 | padding: 0 24px; 78 | width: calc(100% + 48px); 79 | display: inline-block; 80 | } 81 | 82 | .VPPage [class*="language-"] code .highlighted.error { 83 | background-color: var(--vp-code-line-error-color); 84 | } 85 | 86 | .VPPage [class*="language-"] code .highlighted.warning { 87 | background-color: var(--vp-code-line-warning-color); 88 | } 89 | 90 | .VPPage [class*="language-"] code .diff { 91 | transition: background-color 0.5s; 92 | margin: 0 -24px; 93 | padding: 0 24px; 94 | width: calc(100% + 48px); 95 | display: inline-block; 96 | } 97 | 98 | .VPPage [class*="language-"] code .diff:before { 99 | position: absolute; 100 | left: 10px; 101 | } 102 | 103 | .VPPage [class*="language-"] .has-focused-lines .line:not(.has-focus) { 104 | filter: blur(0.095rem); 105 | opacity: 0.4; 106 | transition: filter 0.35s, opacity 0.35s; 107 | } 108 | 109 | .VPPage [class*="language-"] .has-focused-lines .line:not(.has-focus) { 110 | opacity: 0.7; 111 | transition: filter 0.35s, opacity 0.35s; 112 | } 113 | 114 | .VPPage [class*="language-"]:hover .has-focused-lines .line:not(.has-focus) { 115 | filter: blur(0); 116 | opacity: 1; 117 | } 118 | 119 | .VPPage [class*="language-"] code .diff.remove { 120 | background-color: var(--vp-code-line-diff-remove-color); 121 | opacity: 0.7; 122 | } 123 | 124 | .VPPage [class*="language-"] code .diff.remove:before { 125 | content: "-"; 126 | color: var(--vp-code-line-diff-remove-symbol-color); 127 | } 128 | 129 | .VPPage [class*="language-"] code .diff.add { 130 | background-color: var(--vp-code-line-diff-add-color); 131 | } 132 | 133 | .VPPage [class*="language-"] code .diff.add:before { 134 | content: "+"; 135 | color: var(--vp-code-line-diff-add-symbol-color); 136 | } 137 | 138 | .VPPage div[class*="language-"].line-numbers-mode { 139 | padding-left: 32px; 140 | } 141 | 142 | .VPPage .line-numbers-wrapper { 143 | position: absolute; 144 | top: 0; 145 | bottom: 0; 146 | left: 0; 147 | z-index: 3; 148 | border-right: 1px solid var(--vp-code-block-divider-color); 149 | padding-top: 20px; 150 | width: 32px; 151 | text-align: center; 152 | font-family: var(--vp-font-family-mono); 153 | line-height: var(--vp-code-line-height); 154 | font-size: var(--vp-code-font-size); 155 | color: var(--vp-code-line-number-color); 156 | transition: border-color 0.5s, color 0.5s; 157 | } 158 | 159 | .VPPage [class*="language-"] > button.copy { 160 | direction: ltr; 161 | position: absolute; 162 | top: 12px; 163 | right: 12px; 164 | z-index: 3; 165 | border: 1px solid var(--vp-code-copy-code-border-color); 166 | border-radius: 4px; 167 | width: 40px; 168 | height: 40px; 169 | background-color: var(--vp-code-copy-code-bg); 170 | opacity: 0; 171 | cursor: pointer; 172 | background-image: var(--vp-icon-copy); 173 | background-position: 50%; 174 | background-size: 20px; 175 | background-repeat: no-repeat; 176 | transition: border-color 0.25s, background-color 0.25s, opacity 0.25s; 177 | } 178 | 179 | .VPPage [class*="language-"]:hover > button.copy, 180 | .VPPage [class*="language-"] > button.copy:focus { 181 | opacity: 1; 182 | } 183 | 184 | .VPPage [class*="language-"] > button.copy:hover, 185 | .VPPage [class*="language-"] > button.copy.copied { 186 | border-color: var(--vp-code-copy-code-hover-border-color); 187 | background-color: var(--vp-code-copy-code-hover-bg); 188 | } 189 | 190 | .VPPage [class*="language-"] > button.copy.copied, 191 | .VPPage [class*="language-"] > button.copy:hover.copied { 192 | border-radius: 0 4px 4px 0; 193 | background-color: var(--vp-code-copy-code-hover-bg); 194 | background-image: var(--vp-icon-copied); 195 | } 196 | 197 | .VPPage [class*="language-"] > button.copy.copied:before, 198 | .VPPage [class*="language-"] > button.copy:hover.copied:before { 199 | position: relative; 200 | top: -1px; 201 | left: -65px; 202 | display: flex; 203 | justify-content: center; 204 | align-items: center; 205 | border: 1px solid var(--vp-code-copy-code-hover-border-color); 206 | border-right: 0; 207 | border-radius: 4px 0 0 4px; 208 | width: 64px; 209 | height: 40px; 210 | text-align: center; 211 | font-size: 12px; 212 | font-weight: 500; 213 | color: var(--vp-code-copy-code-active-text); 214 | background-color: var(--vp-code-copy-code-hover-bg); 215 | white-space: nowrap; 216 | content: "Copied"; 217 | } 218 | 219 | .VPPage [class*="language-"] > span.lang { 220 | position: absolute; 221 | top: 2px; 222 | right: 8px; 223 | z-index: 2; 224 | font-size: 12px; 225 | font-weight: 500; 226 | color: var(--vp-c-text-dark-3); 227 | transition: color 0.4s, opacity 0.4s; 228 | } 229 | 230 | .VPPage [class*="language-"]:hover > button.copy + span.lang, 231 | .VPPage [class*="language-"] > button.copy:focus + span.lang { 232 | opacity: 0; 233 | } 234 | 235 | div, 236 | code { 237 | box-sizing: border-box; 238 | } 239 | @media (min-width: 1440px) { 240 | html, 241 | body { 242 | font-size: 14px; 243 | } 244 | } 245 | @media (min-width: 1920px) { 246 | :root { 247 | --vp-layout-max-width: 1900px; 248 | } 249 | #VPContent .VPDoc.has-aside .content-container { 250 | max-width: 1200px; 251 | } 252 | } 253 | 254 | /*重置默认主题的字体大小*/ 255 | .theme-default-content { 256 | font-size: 15px; 257 | } 258 | /*reset sidebar style*/ 259 | .sidebar-heading { 260 | font-weight: 500; 261 | font-size: 16px; 262 | } 263 | p.sidebar-item:not(.sidebar-heading) { 264 | color: var(--c-bg-arrow); 265 | } 266 | .sidebar-item:not(.sidebar-heading) { 267 | font-size: 15px; 268 | } 269 | 270 | /** flex 271 | ***************************/ 272 | .flex { 273 | display: flex; 274 | } 275 | .flex-wrap { 276 | flex-wrap: wrap; 277 | } 278 | .align-items-center { 279 | align-items: center; 280 | align-content: center; 281 | } 282 | .flex-justify-content-between { 283 | justify-content: space-between; 284 | } 285 | 286 | .vp-doc .el-table table { 287 | margin: 0; 288 | } 289 | 290 | /*Margin*/ 291 | .margin-top-small { 292 | margin-top: 8px; 293 | } 294 | .margin-top { 295 | margin-top: 12px; 296 | } 297 | .margin-top-large { 298 | margin-top: 24px; 299 | } 300 | 301 | .margin-left-small { 302 | margin-left: 8px; 303 | } 304 | .margin-left { 305 | margin-left: 12px; 306 | } 307 | .margin-left-large { 308 | margin-left: 24px; 309 | } 310 | 311 | /*Padding*/ 312 | .padding-top-small { 313 | padding-top: 8px; 314 | } 315 | .padding-top { 316 | padding-top: 12px; 317 | } 318 | .padding-top-large { 319 | padding-top: 24px; 320 | } 321 | 322 | .padding-left-small { 323 | padding-left: 8px; 324 | } 325 | .padding-left { 326 | padding-left: 12px; 327 | } 328 | .padding-left-large { 329 | padding-left: 24px; 330 | } 331 | -------------------------------------------------------------------------------- /src/.vitepress/theme/index.js: -------------------------------------------------------------------------------- 1 | import DefaultTheme from "vitepress/theme"; 2 | import "./index.css"; 3 | 4 | export default { 5 | ...DefaultTheme, 6 | async enhanceApp(ctx) { 7 | // extend default theme custom behaviour. 8 | DefaultTheme.enhanceApp(ctx); 9 | 10 | // register your custom global components 11 | }, 12 | }; 13 | -------------------------------------------------------------------------------- /src/guide/getting-start.md: -------------------------------------------------------------------------------- 1 | # 快速开始 2 | 3 | ## 安装 Volta 4 | 5 | ### Unix 安装{#unix} 6 | 7 | 在大多数 Unix 系统(包括 macOS)上,您可以使用一个命令安装 Volta: 8 | 9 | ```bash 10 | curl https://get.volta.sh | bash 11 | ``` 12 | 13 | 对于 [bash](https://www.gnu.org/software/bash/), [zsh](https://www.zsh.org/) 和 14 | [fish](http://fishshell.com/),这个安装程序将自动更新控制台启动脚本。如果您希望防止修改控制台启动脚本,请参阅跳过 Volta 设置。要手动配置你的 shell 使用 Volta,编辑你的控制台启动脚本如下: 15 | 16 | - 将 VOLTA_HOME 变量设置为$HOME/.volta
17 | - 将$VOLTA_HOME/bin 添加到 PATH 变量的开头 18 | 19 | ### Windows 安装 20 | 21 | 对于 Windows,推荐使用 [winget](https://github.com/microsoft/winget-cli) 安装 Volta 22 | 23 | ```bash 24 | winget install Volta.Volta 25 | ``` 26 | 27 | 如果您愿意,您可以直接[下载](https://github.com/volta-cli/volta/releases/latest)安装程序并手动运行它来安装 Volta。 28 | 29 | ### Windows 下的 linux 子系统 30 | 31 | 如果您在 Linux 的 Windows 子系统中使用 Volta,请遵循上面的 Unix 安装指南。 32 | 33 | ## 选择默认的 Node 版本 34 | 35 | 这是 Volta 将在有固定版本的项目之外的其它地方使用的版本。 36 | 37 | 要选择特定版本的 Node,可以运行: 38 | 39 | ```bash 40 | volta install node@20.11.0 41 | ``` 42 | 43 | 或者使用最新的 LTS 版本,可以运行: 44 | 45 | ```bash 46 | volta install node 47 | ``` 48 | -------------------------------------------------------------------------------- /src/guide/introduction.md: -------------------------------------------------------------------------------- 1 | # 介绍 2 | 3 | 欢迎来到 Volta! 4 | 5 | Volta 是一种管理 JavaScript 命令行工具的便捷方式。 6 | 7 | ## 功能 8 | 9 | - 速度 10 | - 无缝,每个项目的版本切换 11 | - 跨平台支持,包括 Windows 和所有 Unix shell 12 | - 支持多个包管理器 13 | - 稳定的工具安装-无需每次升级都重新安装! 14 | - 可扩展性挂钩用于特定于站点的定制 15 | 16 | ## 为什么选择 Volta? 17 | 18 | Volta’s job is to get out of your way. 19 | 20 | 使用 Volta,您可以一次选择 Node 引擎,然后不再担心它。您可以在项目之间切换,而不必手动在节点之间切换。你可以在工具链中安装 npm 二进制包,而不必定期重新安装它们,或者弄清楚它们停止工作的原因。 21 | 22 | ### 快速设置和切换 Node 引擎 23 | 24 | 获取并使用特定版本的 Node: 25 | 26 | ```bash 27 | volta install node@14 28 | ``` 29 | 30 | 您应该立即注意到该工具的响应速度有多快。您的开发时间是宝贵的!JavaScript 开发人员应该拥有时髦的工具。 🙂 31 | 32 | ### 为合作者提供可复制的环境 33 | 34 | Volta 允许你用一个命令为一个项目选择节点引擎和包管理器: 35 | 36 | ```bash 37 | volta pin node@12 38 | ``` 39 | 40 | Volta 将 Node 引擎的准确版本保存在 package.json,这样你就可以把你的选择提交给 git。从那时起,每次在项目目录中运行 Node 时,Volta 都会自动切换到您选择的同一版本 41 | 的 Node。类似的。所有的合作者都可以通过在他们的开发机器上安装 Volta 来做同样的事情。 42 | 43 | ### Install and forget 44 | 45 | Volta 还允许您将最喜欢的二进制包作为命令行工具安装,而不必担心它们会干扰您的开发项目。更好的是,这些工具在安装时被固定到特定的 Node 引擎上,除非您显式地告诉它们,否则它们不会更改。这意味着一旦一个工具工作了,它就会继续工作。 46 | 47 | ```bash 48 | npm install -g surge 49 | surge -h 50 | ``` 51 | 52 | ## 如何工作的 53 | 54 | Volta 没有使用任何花哨的操作系统特性或特定于 shell 的钩子。 55 | 56 | 它是建立在简单,行之有效的方法垫片。每当您使用 Volta 安装工具时,它都会为您的 PATH 添加一个垫片,该垫片充当到正确版本的工具的智能(快速)路由器,并使用正确的 Node 引擎运行它。 57 | 58 | Volta 很容易安装,没有外部依赖,因为它是在 Rust 中作为一个单一的、快速的本地可执行文件构建的。 59 | -------------------------------------------------------------------------------- /src/guide/understanding.md: -------------------------------------------------------------------------------- 1 | # 了解 Volta 2 | 3 | Volta 的工作是管理 JavaScript 命令行工具,如 node、npm、yarn 或作为 JavaScript 包的一部分发布的可执行文件。 4 | 5 | 与包管理器类似,Volta 会根据当前目录跟踪您正在处理的项目(如果有的话)。Volta 工具链中的工具会自动检测您所处的项目是否使用特定版本的工具,并为您路由到正确的工具版本。 6 | 7 | ## 管理您的工具链 8 | 9 | 您可以使用两个命令控制由 Volta 工具链管理的工具: `Volta install` 和 `Volta uninstall`。 10 | 11 | ### 安装 node 引擎 12 | 13 | 要将工具安装到工具链中,需要设置该工具的默认版本。Volta 将始终使用这个默认值,除非您在一个已配置 Volta 使用不同版本的项目目录中工作。当您选择默认版本时,Volta 也会将该版本下载到本地缓存中。 14 | 15 | 例如,您可以选择 node 的确切版本作为默认版本: 16 | 17 | ```bash 18 | volta install node@14.15.5 19 | ``` 20 | 21 | 你不需要指定一个精确的版本,在这种情况下,Volta 会选择一个合适的版本来匹配你的请求: 22 | 23 | ```bash 24 | volta install node@14 25 | ``` 26 | 27 | 你也可以指定最新版本,或者甚至完全不选择版本,Volta 将选择最新的 LTS 版本: 28 | 29 | ```bash 30 | volta install node 31 | ``` 32 | 33 | 一旦您运行了这些命令中的一个,在您的 PATH 环境(或 Windows 中的 PATH)中由 Volta 提供的节点可执行文件将在默认情况下自动运行您选择的 node 版本。 34 | 35 | 同样地,你可以使用 volta install npm 和 volta install Yarn 分别选择 npm 和 Yarn 包管理器的版本。这些工具将使用您选择的 Node 的默认版本运行。 36 | 37 | ### 安装二进制包{#installing-package-binaries} 38 | 39 | 使用 Volta,使用包管理器全局安装命令行工具也会将其添加到工具链中。例如,[`vuepress`](https://www.npmjs.com/package/vuepress) 包包含一个同名的可执行文件: 40 | 41 | ```bash 42 | yarn global add vuepress 43 | ``` 44 | 45 | 当您将一个包安装到工具链上时,Volta 会获取当前的默认 Node 版本,并将该工具固定到该引擎上(有关更多信息,请参阅[包二进制文件](/reference/advanced/packages#pinned-node-version))。 46 | Volta 不会改变工具的固定引擎,除非你更新工具,无论如何。这样,您就可以确信您安装的工具不会在您背后更改。 47 | 48 | ## 管理您的项目 49 | 50 | Volta 允许团队或协作者社区标准化他们在项目中使用的开发工具。 51 | 52 | ### 固定 Node 引擎 53 | 54 | volta pin 命令允许您为项目选择 Node 引擎和包管理器版本: 55 | 56 | ```bash 57 | volta pin node@12.20 58 | volta pin yarn@1.19 59 | ``` 60 | 61 | Volta 会把这个放在你的 package.json,这样你就可以把你选择的工具提交到版本控制: 62 | 63 | ```bash 64 | "volta": { 65 | "node": "12.20.2", 66 | "yarn": "1.19.2" 67 | } 68 | ``` 69 | 70 | 这样,每个使用 Volta 在项目上工作的人都会自动获得您选择的相同版本。 71 | 72 | ```bash 73 | node --version # 12.20.2 74 | yarn --version # 1.19.2 75 | ``` 76 | 77 | ### 使用项目工具 78 | 79 | node 和包管理器可执行文件并不是工具链中唯一的智能工具:工具链中的包二进制文件也知道您的当前目录,并尊重您所在项目的配置。 80 | 81 | 例如,安装 Typescript 包会将编译器 *tsc* 添加到你的工具链中: 82 | 83 | ```bash 84 | npm install --global typescript 85 | ``` 86 | 87 | 根据你所在的项目,这个可执行文件会切换到项目选择的 TypeScript 版本: 88 | 89 | ```bash 90 | cd /path/to/project-using-typescript-3.9.4 91 | tsc --version # 3.9.4 92 | 93 | cd /path/to/project-using-typescript-4.1.5 94 | tsc --version # 4.1.5 95 | ``` 96 | 97 | ### 安全方便 98 | 99 | 因为 Volta 的工具链总是跟踪你在哪里,它确保你使用的工具总是尊重你正在做的项目的设置。这意味着您不必担心在项目之间切换时更改已安装软件的状态。 100 | 101 | 更重要的是,当 Volta 运行一个工具时,它会覆盖它的轨迹,确保你的 npm 或 Yarn 脚本永远不会看到你的工具链中有什么。 102 | 103 | 这两个特性的结合意味着 Volta 解决了**全局包的问题**。换句话说,Volta 为您提供了全局包安装的便利,但没有危险。 104 | 105 | 例如,你可以使用 `npm i -g typescript` 安全地安装 TypeScript,并享受直接调用 tsc 的便利无需担心项目的包脚本可能意外地依赖于您的机器的全局状态。 106 | -------------------------------------------------------------------------------- /src/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Volta 3 | layout: home 4 | hero: 5 | name: Volta 6 | tagline: The Hassle-Free JavaScript Tool Manager 7 | actions: 8 | - theme: brand 9 | text: 开始 10 | link: /guide/introduction 11 | - theme: alt 12 | text: GitHub 13 | link: https://github.com/document-translate/volta 14 | 15 | features: 16 | - title: 快速-Fast 17 | details: 快速无缝地安装和运行任何JS工具!Volta是在Rust中构建的,并作为一个时髦的静态二进制文件发布。 18 | - title: 可靠-Reliable 19 | details: 确保项目中的每个人都有相同的工具,而不会干扰他们的工作流程。 20 | - title: 通用-Universal 21 | details: 无论是包管理器、Node运行时还是操作系统,您只需要一个命令:volta install。 22 | --- 23 | 24 |
25 | 26 | ## 尝试 Volta{volta} 27 | 28 | ```bash 29 | # 安装 Volta 30 | curl https://get.volta.sh | bash 31 | 32 | # 安装 Node 33 | volta install node 34 | 35 | # 使用 Node 36 | node 37 | ``` 38 | 39 |
40 | 41 | 276 | -------------------------------------------------------------------------------- /src/public/CNAME: -------------------------------------------------------------------------------- 1 | volta.jikun.dev -------------------------------------------------------------------------------- /src/public/baidu_verify_codeva-mnid3WVeSh.html: -------------------------------------------------------------------------------- 1 | 39029aaa8915a6dedb4d77a92415ca2d -------------------------------------------------------------------------------- /src/reference/advanced/hooks.md: -------------------------------------------------------------------------------- 1 | # Hooks 2 | 3 | 默认情况下,Volta 从公共资源和注册表(https://nodejs.org, https://yarnpkg.com, https://www.npmjs.com) 中获取 Node, 4 | npm 和 Yarn。然而,根据你的环境,可能有必要告诉 Volta 从所有不同的源代码下载(例如 npm Enterprise 的内部工具)。为了适应这一点,Volta 提供了连接到下载过程的钩子。 5 | 6 | ## 在哪里配置 hook 7 | 8 | 钩子总是在名为 Hooks.json 的文件中设置。这个文件可以在两个地方之一,这取决于你想要那些钩子的作用域: 9 | 10 | - 在 Volta 目录中指定的 hook (~/.volta/hooks.json on Linux/MacOS, %LOCALAPPDATA%\Volta\hooks.json on Windows) 11 | 将应用于整个系统 12 | - 在项目的.volta 子目录中指定的钩子(\/.volta/hooks.json)将只在该项目中应用。这里的 \ 被定义为 package.json 13 | 所在目录。 14 | 15 | ## Hooks 文件格式 16 | 17 | hooks.json 的内容必须是一个对象,每种类型的工具(当前是 node、npm 和 yarn)都有可选的键。每个工具有 3 个动作,每个动作都可以有一个钩子应用于它们: 18 | 19 | - `index` 表示用于确定该工具可下载的版本列表的 URL。访问该 URL 时的响应必须与所选工具的公共索引格式匹配。 20 | - `latest` 表示该工具的最新版本的 URL。对于 node,响应应该采用与索引相同的格式,确保最新版本是列表中的第一个元素。对于 yarn,响应应该是原始版本号字符串,而不是其他。 21 | - `distro` 表示用于下载工具二进制文件的 URL。 22 | 23 | 最后,每个动作都有 3 个可以使用的钩子(如下所述)(每次只能为每个动作指定一个)。 24 | 25 | 一个 hooks.json 文件例子,如下: 26 | 27 | ```json 28 | { 29 | "node": { 30 | "index": { 31 | "bin": "/usr/local/node-lookup" 32 | }, 33 | "latest": { 34 | "prefix": "http://example.com/node/" 35 | }, 36 | "distro": { 37 | "template": "http://example.com/{{os}}/{{arch}}/node-{{version}}.tar.gz" 38 | } 39 | }, 40 | "npm": { 41 | "index": { 42 | "prefix": "http://example.com/npm/" 43 | }, 44 | "latest": { 45 | "bin": "~/npm-latest" 46 | }, 47 | "distro": { 48 | "template": "http://example.com/npm/npm-{{version}}.tgz" 49 | } 50 | }, 51 | "yarn": { 52 | "index": { 53 | "template": "http://example.com/yarn/{{os}}/{{arch}}/yarn-{{version}}.tgz" 54 | }, 55 | "latest": { 56 | "prefix": "http://example.com/yarnpkg/" 57 | }, 58 | "distro": { 59 | "bin": "~/yarn-distro" 60 | } 61 | } 62 | } 63 | ``` 64 | 65 | ## hook 类型 66 | 67 | ### `prefix` 钩子 68 | 69 | `prefix`钩子是一个简单的 URL 替换。URL 将使用指定的前缀,后跟该操作的公共文件名构建。例如,使用上面的 `hooks.json`。我们有一个 `prefix` 钩子来确定最新的 yarn 70 | 版本。默认情况下,Volta 会通过向 `https://yarnpkg.com/latest-version` 发起请求来获取最新版本。Volta 会使用钩子访问 `http://example.com/yarnpkg/latest-version`, 71 | 并在 `http://example.com/yarnpkg/` 的指定前缀后面添加 `latest-version`。 72 | 73 | ### `template` 钩子 74 | 75 | The `template` hook allows you to specify the template for a URL, with wildcards that will be replaced. 可用的通配符有: 76 | 77 | - `{{'os'}}` 将被'darwin', 'linux'或'win'取代,具体取决于操作系统。 78 | - `{{'arch'}}` 将被'x86'或'x64'取代,具体取决于系统的体系结构。 79 | - `{{'version'}}` (仅在 `distro` 有效) 将被 Volta 正在尝试下载的特定版本的工具所取代。 80 | - `{{'filename'}}` 将被 Volta 从公共注册表下载的文件的文件名所替换。 81 | - `{{'ext'}}` (仅在 `distro` 有效) 将被 Volta 期望下载的文件扩展名所替换。 82 | 83 | :::warning 提示 84 | `filename` 和 `ext` 替换仅在 Volta 0.8.4 或更高版本中可用 85 | ::: 86 | 87 | 使用 `node.distro` 从上面的例子中,当在 64 位 Linux 系统上获取 `node@10.15.3`时,Volta 将尝试从`http://example.com/linux/x64/node-10.15.3.tar.gz` 88 | 下载 89 | 90 | ### `bin` Hooks 91 | 92 | The `bin` hook is an all-purpose hook that will call out to an external script to determine the URL. The value is a path to an executable script that will be called, and the URL will be read from the `stdout` of that script. The `stderr` of the script will be shown to the user, so it can be used to show progress bars or waiting spinners if desired. If the path to the script is relative then it will be resolved relative to the `hooks.json` file in which it is specified. In this context, a relative path means that the path begins with `./` or `../` on Linux/MacOS and begins with `.\` or `..\` on Windows. Lastly, for `distro` action hooks, the requested version of the tool will be passed as the first argument to that script. 93 | 94 | Using the `yarn.distro` hook from the example `hooks.json`, when fetching `yarn@1.13.0`, Volta will call `~/yarn-distro "1.13.0"` and attempt to download the tarball from the URL that is returned by that hook. 95 | -------------------------------------------------------------------------------- /src/reference/advanced/installers.md: -------------------------------------------------------------------------------- 1 | # 安装程序 2 | 3 | 有关安装程序如何工作以及如何为托管安装创建自己的自定义安装程序/发行版的详细信息。 4 | 5 | ## Current Installers 6 | 7 | 从 Volta 0.7.0 开始,所有的官方安装程序都以相同的方式工作: 8 | 9 | 1. 解压 Volta 二进制文件 10 | 2. 使用解压缩的 `volta` 二进制文件调用 `volta setup` (有关更多信息,请参见 [volta setup](/reference/setup))。 11 | 12 | ### Windows 安装程序 13 | 14 | Windows安装程序将把所有的二进制文件解压到 `Program Files\Volta` 目录,并将该文件夹添加到系统的 `Path` 环境变量中。 15 | 它还将在该目录中为以下工具创建垫片(shims): 16 | 17 | - `node` 18 | - `npm` 19 | - `npx` 20 | - `yarn` 21 | 22 | ### Unix 安装程序 23 | 24 | Unix安装程序将所有二进制文件解压到 `~/.volta/bin` 目录中,因此它们仅针对特定用户进行安装。 25 | 26 | ## 跳过 Volta 设置{#skipping-volta-setup} 27 | 28 | 如果你想运行安装程序,但不希望你的配置文件脚本被 `volta setup` 修改,你可以将 `--skip-setup` 选项传递给安装程序: 29 | 30 | ```bash 31 | curl https://get.volta.sh | bash -s -- --skip-setup 32 | ``` 33 | 34 | :::warning 警告 35 | 我们目前不支持在 Windows 上跳过 volta 设置。 36 | ::: 37 | 38 | ## 安装旧版本{#installing-old-versions} 39 | 40 | 由 [get.volta.sh](https://get.volta.sh)提供的默认安装脚本仅支持安装 Volta 1.1.0 及以上版本。 41 | 如果您想安装旧版本,可以使用以下 Unix 脚本进行安装,并将 `1.0.8` 替换为您想要安装的版本。 42 | 43 | ```bash 44 | curl https://raw.githubusercontent.com/volta-cli/volta/8f2074f423c65405dfba9858d9bcf393c38ffb45/dev/unix/volta-install.sh | bash -s -- --version 1.0.8 45 | ``` 46 | 47 | 对于 Windows,您可以下载并安装你想要安装的特定版本的 `.msi` 文件。 48 | 49 | :::warning 警告 50 | Volta 不支持降级,因此为了降级,您需要完全卸载 Volta,然后安装较低版本。 51 | ::: 52 | 53 | ## 自定义安装{#custom-installers} 54 | 55 | 创建自定义安装程序/分发方法,需要两个必要步骤和一个可选步骤: 56 | 57 | ### 分发二进制文件 58 | 59 | 这些二进制文件需要传送到目标机器上。 60 | 所需的二进制文件列表将在发布文件中的 `volta.manifest` 中列出。 61 | 截至 Volta 0.7.0 版本,所需的文件如下: 62 | 63 | - `volta[.exe]` 64 | - `volta-shim[.exe]` 65 | - `volta-migrate[.exe]` 66 | 67 | 这些二进制文件都需要在同一个目录中分发,并且该目录应该在 `PATH` 上,以便对 `volta` 命令的调用能够正常工作。 68 | 69 | ### Shim Directory 70 | 71 | 还需要将 Volta shim 目录添加到 `PATH` 中,以便 shims 能够正常工作。 72 | 该 shim 目录位于 `$VOLTA_HOME/bin`(在Windows上为 `%VOLTA_HOME%\bin`),其中的 `VOLTA_HOME` 默认设置为:" 73 | 74 | - 在 Unix 为 `~/.volta` 75 | - 在 Windows 为 `%LOCALAPPDATA%\Volta` 76 | 77 | 如果需要的话,可以手动管理更新路径,或者可以像官方安装程序一样调用 `volta setup`(如上所述)。 78 | 79 | ### 自定义 Volta Home(可选){#custom-volta-home} 80 | 81 | 如果您希望在 Volta 数据的默认 `VOLTA_HOME` 目录之外使用其他目录,您需要将环境变量 `VOLTA_HOME` 设置为该目录。 82 | 如果已经设置了该变量,则对于自定义数据目录, `volta setup` 仍然可以正常工作。 83 | -------------------------------------------------------------------------------- /src/reference/advanced/packages.md: -------------------------------------------------------------------------------- 1 | # 包的二进制文件 2 | 3 | 详细介绍安装二进制包的过程。 4 | 5 | ## 自定义下载位置 6 | 7 | 在内部,`volta install ` 使用 npm 风格的解析来确定可用的版本和包二进制文件的下载位置。因此,要重定向并使用内部存储库(即从私有 repo 安装内部工具), 8 | 您可以在主目录中创建.npmrc 文件。在解析和下载工具以及解析给定工具的依赖项时,将尊重指定的选项。 9 | 10 | ## 固定 Node 版本{#pinned-node-version} 11 | 12 | 正如在[了解 Volta](/guide/understanding#installing-package-binaries) 中所描述的,Volta 将在安装工具时固定 Node 的一个版本,这样 13 | 即使默认的 Node 版本发生了变化,该工具也可以继续使用。用于确定应该固定哪个版本的过程如下: 14 | 15 | ### 在 Volta 0.68 版本之前 16 | 17 | - 如果包的 package.json 中指定的 Node。请使用符合要求的最新版本的 Node 18 | - 否则,请使用最新版本的 Node 19 | 20 | ### Volta 0.6.8 ~ 0.8.7 版本 21 | 22 | - 如果包的 package.json 中指定的 Node。请使用符合要求的最新 LTS 版本的 Node 23 | - 如果没有满足要求的 LTS 版本,则使用满足 Node 的最新整体版本 24 | - 如果 Node 不可用,请使用最新的 LTS 版本的 Node 25 | 26 | ### Volta 0.9 及更高版本 27 | 28 | 从 Volta 0.9.0 开始,Volta 将把一个包固定到当前的默认 Node 版本(安装该工具时)。你可以通过改变默认值来改变这个版本,或者运行`volta run`安装: 29 | 30 | ```bash 31 | volta run --node 15 npm i -g ember-cli 32 | ``` 33 | -------------------------------------------------------------------------------- /src/reference/advanced/pnpm.md: -------------------------------------------------------------------------------- 1 | # pnpm 支持 2 | 3 | ## 已知的限制{#known-limitations} 4 | 5 | 对 pnpm 的支持目前是实验性的。要启用该功能,请确保环境变量 `VOLTA_FEATURE_PNPM` 设置为 `1`。在 Windows 上,这可以添加到系统设置中的用户或系统环境变量中。在 6 | Linux/Mac 上,您可以在配置文件脚本中设置该值(例如.bash_profile、.zshrc 或类似的脚本)。 7 | 8 | 由于这种支持是实验性的,可能会有一些突出的问题。下面列出了一些已知的限制,但是如果你在使用 pnpm 与 Volta 时遇到任何不像你期望的那样工作的问题,请在我们的 [GitHub 提 Issue](https://github.com/volta-cli/volta/issues/new)。 9 | 10 | ### 全局安装{#global-installations} 11 | 12 | 目前不支持全局安装(例如 pnpm install -g),并且会导致错误。 13 | 14 | ## 迁移{#migrating} 15 | 16 | 目前还没有自动迁移功能,因此如果您以前将 pnpm 作为 Volta 全局文件安装,则需要通过调用 `Volta install pnpm` 手动重新安装它。在启用支持并重新安装之前,您可以通过 17 | `volta uninstall pnpm` 卸载之前安装的 pnpm 包。一旦切换到本机 pnpm 支持,由于目前缺乏卸载实现,可能无法通过调用相同的命令来删除孤立的旧 pnpm 包。 18 | -------------------------------------------------------------------------------- /src/reference/advanced/uninstall.md: -------------------------------------------------------------------------------- 1 | # 卸载 Volta 2 | 3 | 如果 Volta 不能满足你的需求,你想要卸载它,我们很遗憾看到你离开!我们将非常感谢任何反馈,你可能有什么是缺失的经验,以便我们可以改善伏特在未来。你可以通过 [Twitter](https://twitter.com/usevolta)、 4 | [Discord](https://discord.gg/hgPTz9A) 或 [GitHub](https://github.com/volta-cli/volta) 联系到我们。 5 | 6 | ## Unix 上卸载 7 | 8 | - 删除整个 `~/.volta` 目录 9 | 10 | ```bash 11 | rm -rf ~/.volta 12 | ``` 13 | 14 | - 编辑 shell 配置文件脚本,删除提到 Volta 的两行。Volta 默认定位的配置文件脚本如下: 15 | 1. `.bashrc` 16 | 2. `.bash_profile` 17 | 3. `.zshrc` 18 | 4. `config.fish` 19 | 5. `.profile` 20 | 21 | :::warning 注意 22 | 在进行此更改后,您可能需要打开一个新的终端,因为许多 shell 会缓存最近命令的位置 23 | ::: 24 | 25 | ## Windows 上卸载 26 | 27 | 在 Windows 上,可以通过在 `开始>设置>应用>安装的应用` 中选择它并选择卸载来卸载 Volta。 28 | -------------------------------------------------------------------------------- /src/reference/advanced/workspaces.md: -------------------------------------------------------------------------------- 1 | # 工作区(Workspace) 2 | 3 | 关于如何在工作空间环境中使用 Volta 的详细信息,其中在单个 repo 中有多个项目,并且它们都希望共享 Volta 设置。 4 | 5 | :::warning 警告 6 | 此功能是在 Volta 0.8.2 中添加的,在以前的版本中不起作用。 7 | ::: 8 | 9 | ## 扩展配置 10 | 11 | 在 `package.json` 的 `"volta"` 部分中,您可以使用键为 `"extends"` 来指定一个条目。 12 | 该条目的值应该是另一个 JSON 文件的路径,该文件也有一个 `"volta"` 部分。 13 | 相对路径将相对于设置它们的文件进行解析。任何 Volta 设置(例如 `"node"` 或 `"yarn"` 版本)都将与由 `"extends"` 指向的文件中的设置合并,当前文件具有优先权。 14 | 因此,如果您想为所有项目使用单个 Node 版本,则应在根目录下设置这些版本,并且每个项目只需要添加 `"extends": "../path/to/root/package.json"` 即可。 15 | 16 | ### 示例{#examples} 17 | 18 | 给定以下文件夹结构和 `package.json` 的内容: 19 | 20 | ```bash 21 | . 22 | ├── package.json 23 | └── packages 24 | ├── cli 25 | │   └── package.json 26 | └── utils 27 | └── package.json 28 | ``` 29 | 30 | - `package.json` 31 | 32 | ```json 33 | { 34 | "volta": { 35 | "node": "12.16.1", 36 | "yarn": "1.22.4" 37 | } 38 | } 39 | ``` 40 | 41 | - `packages/cli/package.json` 42 | 43 | ```json 44 | { 45 | "volta": { 46 | "extends": "../../package.json" 47 | } 48 | } 49 | ``` 50 | 51 | - `packages/utils/package.json` 52 | 53 | ```json 54 | { 55 | "volta": { 56 | "extends": "../../package.json" 57 | } 58 | } 59 | ``` 60 | 61 | 在工作区的任何地方运行 `node` 将会使用 Node `12.16.1`。如果你在根目录的 `package.json` 中更新了该版本,它将自动应用于所有项目,而无需在每个子项目中重复设置。 62 | 63 | ## Pinning Tools 64 | 65 | 当你运行 `volta pin` 来选择工作区内的一个工具版本时,Volta 会将这些设置添加到最近的 `package.json` 中。 66 | 所以,在上面的例子中,如果你在 `packages/utils` 子项目中运行了 `volta pin node@14`,新版本的 Node 将被写入到 `packages/utils/package.json`, 67 | 并且仅适用于 `utils` 子项目,而不是其他任何项目。这样可以让你轻松地根据每个项目自定义工具版本。 68 | 69 | 如果您希望使用 `volta pin` 对根配置进行更改,请首先进入工作区根目录,然后从那里运行 `volta pin`. 70 | 71 | ## Hooks 72 | 73 | 如果您的项目使用[项目 hooks](/advanced/hooks),您可以将它们放置在子项目中的 `.volta` 目录中,或者根目录中的 `.volta` 目录中。 74 | Volta 会在由 `"extends"` 键指向的每个位置查找钩子,以便可以根据需要自定义设置。 75 | 76 | ## Project-local Binaries 77 | 78 | 除了在每个级别上寻找钩子(hook)之外,Volta 还会在每个级别上查找项目本地依赖项,以便在运行第三方工具时使用。 79 | 它将尝试在与 `"extends"`引用的每个文件相关的 `node_modules/.bin` 目录中找到它。 80 | -------------------------------------------------------------------------------- /src/reference/completions.md: -------------------------------------------------------------------------------- 1 | # Volta completions 2 | 3 | `volta completions` 命令将为您的 shell 生成命令完成信息。 4 | 5 | 它的语法如下 6 | 7 | ```bash 8 | Generates Volta completions 9 | 10 | By default, completions will be generated for the value of your current shell, 11 | shell, i.e. the value of `SHELL`. If you set the `` option, completions 12 | will be generated for that shell instead. 13 | 14 | If you specify a directory, the completions will be written to a file there; 15 | otherwise, they will be written to `stdout`. 16 | 17 | 18 | USAGE: 19 | volta completions [FLAGS] [OPTIONS] 20 | 21 | FLAGS: 22 | -f, --force 23 | Write over an existing file, if any. 24 | 25 | --verbose 26 | Enables verbose diagnostics 27 | 28 | --quiet 29 | Prevents unnecessary output 30 | 31 | -h, --help 32 | Prints help information 33 | 34 | 35 | OPTIONS: 36 | -o, --output 37 | File to write generated completions to 38 | 39 | 40 | ARGS: 41 | 42 | Shell to generate completions for [possible values: zsh, bash, fish, powershell, 43 | elvish] 44 | ``` 45 | -------------------------------------------------------------------------------- /src/reference/fetch.md: -------------------------------------------------------------------------------- 1 | # Volta Fetch 2 | 3 | `volta fetch` 命令将允许您将工具获取到本地缓存中,而无需将其设置为默认值或使其可用,以供将来脱机使用。 4 | 5 | 它的语法如下: 6 | 7 | ```bash 8 | Fetches a tool to the local machine 9 | 10 | USAGE: 11 | volta fetch [FLAGS] ... 12 | 13 | FLAGS: 14 | --verbose Enables verbose diagnostics 15 | --quiet Prevents unnecessary output 16 | -h, --help Prints help information 17 | 18 | ARGS: 19 | ... Tools to fetch, like `node`, `yarn@latest` or `your-package@^14.4.3`. 20 | ``` 21 | -------------------------------------------------------------------------------- /src/reference/help.md: -------------------------------------------------------------------------------- 1 | # Volta help 2 | 3 | `volta help` 命令的语法如下: 4 | 5 | ```bash 6 | Prints this message or the help of the given subcommand(s) 7 | 8 | USAGE: 9 | volta help [subcommand]... 10 | 11 | ARGS: 12 | ... The subcommand whose help message to display 13 | ``` 14 | -------------------------------------------------------------------------------- /src/reference/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | outline: false 3 | --- 4 | 5 | # Volta 命令 6 | 7 | 这是 volta 命令行二进制文件的命令参考,其语法如下: 8 | 9 | ```bash 10 | The JavaScript Launcher ⚡ 11 | 12 | To install a tool in your toolchain, use `volta install`. 13 | To pin your project's runtime or package manager, use `volta pin`. 14 | 15 | USAGE: 16 | volta [FLAGS] [SUBCOMMAND] 17 | 18 | FLAGS: 19 | --verbose 20 | Enables verbose diagnostics 21 | 22 | --quiet 23 | Prevents unnecessary output 24 | 25 | -v, --version 26 | Prints the current version of Volta 27 | 28 | -h, --help 29 | Prints help information 30 | 31 | 32 | SUBCOMMANDS: 33 | fetch Fetches a tool to the local machine 34 | install Installs a tool in your toolchain 35 | uninstall Uninstalls a tool from your toolchain 36 | pin Pins your project's runtime or package manager 37 | list Displays the current toolchain 38 | completions Generates Volta completions 39 | which Locates the actual binary that will be called by Volta 40 | setup Enables Volta for the current user / shell 41 | help Prints this message or the help of the given subcommand(s) 42 | ``` 43 | -------------------------------------------------------------------------------- /src/reference/install.md: -------------------------------------------------------------------------------- 1 | # Volta install 2 | 3 | `volta install` 命令将设置工具的默认版本。如果该工具尚未在本地缓存,它也将获取该工具。 4 | 5 | 它的语法如下: 6 | 7 | ```bash 8 | Installs a tool in your toolchain 9 | 10 | USAGE: 11 | volta install [FLAGS] ... 12 | 13 | FLAGS: 14 | --verbose Enables verbose diagnostics 15 | --quiet Prevents unnecessary output 16 | -h, --help Prints help information 17 | 18 | ARGS: 19 | ... Tools to install, like `node`, `yarn@latest` or `your-package@^14.4.3`. 20 | ``` 21 | -------------------------------------------------------------------------------- /src/reference/list.md: -------------------------------------------------------------------------------- 1 | # Volta list 2 | 3 | `volta list` 命令允许您检查已安装的 Node 运行时、包管理器和带有二进制文件的包。 4 | 5 | 命令格式如下: 6 | 7 | ```bash 8 | Displays the current toolchain 9 | 10 | USAGE: 11 | volta list [FLAGS] [OPTIONS] [tool] 12 | 13 | FLAGS: 14 | -c, --current 15 | Show the currently-active tool(s). 16 | 17 | Equivalent to `volta list` when not specifying a specific tool. 18 | -d, --default 19 | Show your default tool(s). 20 | 21 | --verbose 22 | Enables verbose diagnostics 23 | 24 | --quiet 25 | Prevents unnecessary output 26 | 27 | -h, --help 28 | Prints help information 29 | 30 | 31 | OPTIONS: 32 | --format 33 | Specify the output format. 34 | 35 | Defaults to `human` for TTYs, `plain` otherwise. [possible values: human, plain] 36 | 37 | ARGS: 38 | 39 | The tool to lookup: `all`, `node`, `yarn`, or the name of a package or binary. 40 | ``` 41 | 42 | 详细设计, 请查看 [RFC #34](https://github.com/volta-cli/rfcs/pull/34). 43 | -------------------------------------------------------------------------------- /src/reference/pin.md: -------------------------------------------------------------------------------- 1 | # Volta pin 2 | 3 | `volta pin`命令将更新一个项目的 package.json 文件以使用工具的选定版本。 4 | 5 | :::tip 提示 6 | `volta pin`只适用于 Node 和包管理器(例如 npm 或 Yarn)。对于依赖项,你应该使用 `npm install` 或 `yarn add` 来更新选择的版本。 7 | ::: 8 | 9 | 命令格式如下: 10 | 11 | ```bash 12 | Pins your project's runtime or package manager 13 | 14 | USAGE: 15 | volta pin [FLAGS] ... 16 | 17 | FLAGS: 18 | --verbose Enables verbose diagnostics 19 | --quiet Prevents unnecessary output 20 | -h, --help Prints help information 21 | 22 | ARGS: 23 | ... Tools to pin, like `node@lts` or `yarn@^1.14`. 24 | ``` 25 | -------------------------------------------------------------------------------- /src/reference/run.md: -------------------------------------------------------------------------------- 1 | # Volta run 2 | 3 | `volta run` 命令将使用命令行中指定的工具版本运行您提供的命令。任何没有直接指定版本的工具都将由 Volta 通常的上下文检测来确定其版本,使用项目中的固定版本或默认版本。 4 | 5 | --no-yarn 标志允许您覆盖该决定,并在命令运行时强制环境中不包含 yarn。类似地,--bundled-npm 标志允许你强制使用 npm 与 Node 绑定的版本,而忽略任何自定义版本。 6 | 7 | :::tip 提示 8 | 版本设置必须出现在要运行的命令之前。命令之后的任何内容都将被视为参数不会被 volta 读到 9 | ::: 10 | 11 | 此外,您可以使用 `--env NAME-value option` 选项指定要传递给命令的自定义环境变量。 12 | 13 | 命令格式如下: 14 | 15 | ```bash 16 | Run a command with custom Node, npm, and/or Yarn versions 17 | 18 | USAGE: 19 | volta run [FLAGS] [OPTIONS] [--] [args]... 20 | 21 | FLAGS: 22 | --bundled-npm Forces npm to be the version bundled with Node 23 | --no-yarn Disables Yarn 24 | --verbose Enables verbose diagnostics 25 | --quiet Prevents unnecessary output 26 | -h, --help Prints help information 27 | 28 | OPTIONS: 29 | --node Set the custom Node version 30 | --npm Set the custom npm version 31 | --yarn Set the custom Yarn version 32 | --env ... Set an environment variable (can be used multiple times) 33 | 34 | ARGS: 35 | The command to run 36 | ... Arguments to pass to the command 37 | ``` 38 | -------------------------------------------------------------------------------- /src/reference/setup.md: -------------------------------------------------------------------------------- 1 | # Volta setups 2 | 3 | `volta setup` 命令将通过修改当前用户的 PATH(以与平台相关的方式)来启用 volta,使其包含 volta shim 目录。 4 | 5 | ## Unix 6 | 7 | 在 Unix 上,volta 安装程序将使用以下列表搜索配置文件脚本: 8 | 9 | - ~/.profile 10 | - ~/.bash_profile 11 | - ~/.bashrc 12 | - ~/.zshrc 13 | - ~/.config/fish/config.fish 14 | - PROFILE 环境变量的值 15 | 16 | 对于存在的每个文件,volta 安装程序将对其进行修改,使其包含定义 VOLTA_HOME 的行,并将$VOLTA_HOME/bin 添加到 PATH 环境变量中。如果当前 shell 的配置文件 17 | (使用 $SHELL 环境变量检测)不存在,那么将使用适当的内容创建它,如果可能的话。 18 | 19 | ## Windows 20 | 21 | 在 Windows 上,volta 设置将修改 User Path 环境变量以包含 shim 目录(%LOCALAPPDATA%\Volta\bin). 22 | 23 | ## 语法 24 | 25 | 命令格式如下: 26 | 27 | ```bash 28 | Enables Volta for the current user 29 | 30 | USAGE: 31 | volta setup [FLAGS] 32 | 33 | FLAGS: 34 | --verbose Enables verbose diagnostics 35 | --quiet Prevents unnecessary output 36 | -h, --help Prints help information 37 | ``` 38 | -------------------------------------------------------------------------------- /src/reference/uninstall.md: -------------------------------------------------------------------------------- 1 | # Volta uninstall 2 | 3 | `volta uninstall` 命令允许您删除已安装在 `volta install` 中的任何全局包。 4 | 5 | :::tip 提示 6 | 从 Volta 0.9.0 开始,您还可以使用软件包管理器卸载全局软件包,如下 7 | npm uninstall --global 或 yarn global remove 8 | ::: 9 | 10 | ```sh 11 | Uninstalls a tool from your toolchain 12 | 13 | USAGE: 14 | volta uninstall [FLAGS] 15 | 16 | FLAGS: 17 | --verbose Enables verbose diagnostics 18 | --quiet Prevents unnecessary output 19 | -h, --help Prints help information 20 | 21 | ARGS: 22 | The tool to uninstall, e.g. `node`, `npm`, `yarn`, or 23 | ``` 24 | -------------------------------------------------------------------------------- /src/reference/which.md: -------------------------------------------------------------------------------- 1 | # Volta which 2 | 3 | `volta which` 命令将打开 volta 的垫片并定位将由 volta 启动的实际二进制文件。 4 | 5 | 它的语法如下: 6 | 7 | ```bash 8 | Locates the actual binary that will be called by Volta 9 | 10 | USAGE: 11 | volta which [FLAGS] 12 | 13 | FLAGS: 14 | --verbose Enables verbose diagnostics 15 | --quiet Prevents unnecessary output 16 | -h, --help Prints help information 17 | 18 | ARGS: 19 | The binary to find, e.g. `node` or `npm` 20 | ``` 21 | --------------------------------------------------------------------------------