mirror of
https://github.com/zenlm/zen-code-docs.git
synced 2026-10-30 14:58:40 +00:00
28 lines
74 KiB
Plaintext
28 lines
74 KiB
Plaintext
3:I[4707,[],""]
|
||
6:I[36423,[],""]
|
||
8:I[78400,["3185","static/chunks/app/layout-38b548b4f4d27f80.js"],"FontLoader"]
|
||
4:["lang","de","d"]
|
||
5:["mdxPath","npm","oc"]
|
||
0:["0y8u-WGJo2VFWAF7bkrdx",[[["",{"children":[["lang","de","d"],{"children":[["mdxPath","npm","oc"],{"children":["__PAGE__?{\"lang\":\"de\",\"mdxPath\":[\"npm\"]}",{}]}]}]},"$undefined","$undefined",true],["",{"children":[["lang","de","d"],{"children":[["mdxPath","npm","oc"],{"children":["__PAGE__",{},[["$L1","$L2",[["$","link","0",{"rel":"stylesheet","href":"/qwen-code-docs/_next/static/css/04d76539cc2c4ebd.css","precedence":"next","crossOrigin":"$undefined"}]]],null],null]},[null,["$","$L3",null,{"parallelRouterKey":"children","segmentPath":["children","$4","children","$5","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}]],null]},[[null,"$L7"],null],null]},[[[["$","link","0",{"rel":"stylesheet","href":"/qwen-code-docs/_next/static/css/7fba7395046b8eaa.css","precedence":"next","crossOrigin":"$undefined"}]],["$","html",null,{"suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$undefined",["$","style",null,{"children":":root {\n --nextra-primary-hue: 248deg;\n --nextra-primary-saturation: 74%;\n --nextra-primary-lightness: 45%;\n --nextra-bg: 250,250,250;\n --nextra-content-width: 90rem;\n}\n.dark {\n --nextra-primary-hue: 248deg;\n --nextra-primary-saturation: 74%;\n --nextra-primary-lightness: 55%;\n --nextra-bg: 17,17,17;\n}\n::selection {\n background: hsla(var(--nextra-primary-hue),var(--nextra-primary-saturation),var(--nextra-primary-lightness),.3);\n}\nhtml {\n background: rgb(var(--nextra-bg));\n}"}],["$","meta",null,{"name":"theme-color","media":"(prefers-color-scheme: light)","content":"rgb(250,250,250)"}],["$","meta",null,{"name":"theme-color","media":"(prefers-color-scheme: dark)","content":"rgb(17,17,17)"}],"$undefined"]}],["$","body",null,{"children":[["$","$L8",null,{}],["$","$L3",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[]}]]}]]}]],null],null],["$L9",null]]]]
|
||
a:I[54108,["5501","static/chunks/c16f53c3-b998f97655e65347.js","1105","static/chunks/1105-e07e82095c5c7b4a.js","5524","static/chunks/5524-d228bcaedae4ecb3.js","2770","static/chunks/2770-e894e62890be5e00.js","1084","static/chunks/app/%5Blang%5D/layout-11fe9b7075b678bf.js"],"ThemeConfigProvider"]
|
||
b:I[16016,["5501","static/chunks/c16f53c3-b998f97655e65347.js","1105","static/chunks/1105-e07e82095c5c7b4a.js","5524","static/chunks/5524-d228bcaedae4ecb3.js","2770","static/chunks/2770-e894e62890be5e00.js","1084","static/chunks/app/%5Blang%5D/layout-11fe9b7075b678bf.js"],"LastUpdated"]
|
||
c:I[30763,["5501","static/chunks/c16f53c3-b998f97655e65347.js","1105","static/chunks/1105-e07e82095c5c7b4a.js","5524","static/chunks/5524-d228bcaedae4ecb3.js","2770","static/chunks/2770-e894e62890be5e00.js","1084","static/chunks/app/%5Blang%5D/layout-11fe9b7075b678bf.js"],"Search"]
|
||
d:I[25922,["5501","static/chunks/c16f53c3-b998f97655e65347.js","1105","static/chunks/1105-e07e82095c5c7b4a.js","5524","static/chunks/5524-d228bcaedae4ecb3.js","2770","static/chunks/2770-e894e62890be5e00.js","1084","static/chunks/app/%5Blang%5D/layout-11fe9b7075b678bf.js"],"ThemeProvider"]
|
||
e:I[94328,["5501","static/chunks/c16f53c3-b998f97655e65347.js","1105","static/chunks/1105-e07e82095c5c7b4a.js","5524","static/chunks/5524-d228bcaedae4ecb3.js","2770","static/chunks/2770-e894e62890be5e00.js","1084","static/chunks/app/%5Blang%5D/layout-11fe9b7075b678bf.js"],"SkipNavLink"]
|
||
f:I[17691,["5501","static/chunks/c16f53c3-b998f97655e65347.js","1105","static/chunks/1105-e07e82095c5c7b4a.js","5524","static/chunks/5524-d228bcaedae4ecb3.js","2770","static/chunks/2770-e894e62890be5e00.js","1084","static/chunks/app/%5Blang%5D/layout-11fe9b7075b678bf.js"],"ConfigProvider"]
|
||
10:I[72972,["5501","static/chunks/c16f53c3-b998f97655e65347.js","1105","static/chunks/1105-e07e82095c5c7b4a.js","5524","static/chunks/5524-d228bcaedae4ecb3.js","2770","static/chunks/2770-e894e62890be5e00.js","1084","static/chunks/app/%5Blang%5D/layout-11fe9b7075b678bf.js"],""]
|
||
11:I[88212,["5501","static/chunks/c16f53c3-b998f97655e65347.js","1105","static/chunks/1105-e07e82095c5c7b4a.js","5524","static/chunks/5524-d228bcaedae4ecb3.js","2770","static/chunks/2770-e894e62890be5e00.js","1084","static/chunks/app/%5Blang%5D/layout-11fe9b7075b678bf.js"],"ClientNavbar"]
|
||
13:I[32594,["5501","static/chunks/c16f53c3-b998f97655e65347.js","1105","static/chunks/1105-e07e82095c5c7b4a.js","5524","static/chunks/5524-d228bcaedae4ecb3.js","2770","static/chunks/2770-e894e62890be5e00.js","1084","static/chunks/app/%5Blang%5D/layout-11fe9b7075b678bf.js"],"LanguageDropdown"]
|
||
14:I[57191,["5501","static/chunks/c16f53c3-b998f97655e65347.js","1105","static/chunks/1105-e07e82095c5c7b4a.js","5524","static/chunks/5524-d228bcaedae4ecb3.js","2770","static/chunks/2770-e894e62890be5e00.js","1084","static/chunks/app/%5Blang%5D/layout-11fe9b7075b678bf.js"],"MobileNav"]
|
||
15:I[18960,["5501","static/chunks/c16f53c3-b998f97655e65347.js","1105","static/chunks/1105-e07e82095c5c7b4a.js","5524","static/chunks/5524-d228bcaedae4ecb3.js","2770","static/chunks/2770-e894e62890be5e00.js","1084","static/chunks/app/%5Blang%5D/layout-11fe9b7075b678bf.js"],"TOCProvider"]
|
||
16:"$Sreact.fragment"
|
||
17:I[57191,["5501","static/chunks/c16f53c3-b998f97655e65347.js","1105","static/chunks/1105-e07e82095c5c7b4a.js","5524","static/chunks/5524-d228bcaedae4ecb3.js","2770","static/chunks/2770-e894e62890be5e00.js","1084","static/chunks/app/%5Blang%5D/layout-11fe9b7075b678bf.js"],"Sidebar"]
|
||
18:I[98270,["5501","static/chunks/c16f53c3-b998f97655e65347.js","1105","static/chunks/1105-e07e82095c5c7b4a.js","5524","static/chunks/5524-d228bcaedae4ecb3.js","2770","static/chunks/2770-e894e62890be5e00.js","1084","static/chunks/app/%5Blang%5D/layout-11fe9b7075b678bf.js"],"ClientWrapper"]
|
||
19:I[56099,["5501","static/chunks/c16f53c3-b998f97655e65347.js","1105","static/chunks/1105-e07e82095c5c7b4a.js","5524","static/chunks/5524-d228bcaedae4ecb3.js","2770","static/chunks/2770-e894e62890be5e00.js","1084","static/chunks/app/%5Blang%5D/layout-11fe9b7075b678bf.js"],"HeadingAnchor"]
|
||
1a:I[98451,["5501","static/chunks/c16f53c3-b998f97655e65347.js","1105","static/chunks/1105-e07e82095c5c7b4a.js","5524","static/chunks/5524-d228bcaedae4ecb3.js","2770","static/chunks/2770-e894e62890be5e00.js","1084","static/chunks/app/%5Blang%5D/layout-11fe9b7075b678bf.js"],"ToggleWordWrapButton"]
|
||
1b:I[20735,["5501","static/chunks/c16f53c3-b998f97655e65347.js","1105","static/chunks/1105-e07e82095c5c7b4a.js","5524","static/chunks/5524-d228bcaedae4ecb3.js","2770","static/chunks/2770-e894e62890be5e00.js","1084","static/chunks/app/%5Blang%5D/layout-11fe9b7075b678bf.js"],"Mermaid"]
|
||
12:T481,M12 3C7.0275 3 3 7.12937 3 12.2276C3 16.3109 5.57625 19.7597 9.15374 20.9824C9.60374 21.0631 9.77249 20.7863 9.77249 20.5441C9.77249 20.3249 9.76125 19.5982 9.76125 18.8254C7.5 19.2522 6.915 18.2602 6.735 17.7412C6.63375 17.4759 6.19499 16.6569 5.8125 16.4378C5.4975 16.2647 5.0475 15.838 5.80124 15.8264C6.51 15.8149 7.01625 16.4954 7.18499 16.7723C7.99499 18.1679 9.28875 17.7758 9.80625 17.5335C9.885 16.9337 10.1212 16.53 10.38 16.2993C8.3775 16.0687 6.285 15.2728 6.285 11.7432C6.285 10.7397 6.63375 9.9092 7.20749 9.26326C7.1175 9.03257 6.8025 8.08674 7.2975 6.81794C7.2975 6.81794 8.05125 6.57571 9.77249 7.76377C10.4925 7.55615 11.2575 7.45234 12.0225 7.45234C12.7875 7.45234 13.5525 7.55615 14.2725 7.76377C15.9937 6.56418 16.7475 6.81794 16.7475 6.81794C17.2424 8.08674 16.9275 9.03257 16.8375 9.26326C17.4113 9.9092 17.76 10.7281 17.76 11.7432C17.76 15.2843 15.6563 16.0687 13.6537 16.2993C13.98 16.5877 14.2613 17.1414 14.2613 18.0065C14.2613 19.2407 14.25 20.2326 14.25 20.5441C14.25 20.7863 14.4188 21.0746 14.8688 20.9824C16.6554 20.364 18.2079 19.1866 19.3078 17.6162C20.4077 16.0457 20.9995 14.1611 21 12.2276C21 7.12937 16.9725 3 12 3Z7:["$","$La",null,{"value":{"children":"$undefined","darkMode":true,"docsRepositoryBase":"https://github.com/QwenLM/qwen-code/blob/main/docs","editLink":"Edit this page","feedback":{"content":"Question? Give us feedback","labels":"feedback"},"i18n":[{"locale":"en","name":"English"},{"locale":"zh","name":"中文"},{"locale":"de","name":"Deutsch"},{"locale":"fr","name":"Français"},{"locale":"ru","name":"Русский"},{"locale":"ja","name":"日本語"}],"lastUpdated":["$","$Lb",null,{}],"navigation":{"next":true,"prev":true},"search":["$","$Lc",null,{}],"sidebar":{"defaultMenuCollapseLevel":1,"defaultOpen":true,"toggleButton":true,"autoCollapse":true},"themeSwitch":{"dark":"Dark","light":"Light","system":"System"},"toc":{"backToTop":"Scroll to top","float":true,"title":"On This Page"}},"children":["$","$Ld",null,{"attribute":"class","defaultTheme":"light","disableTransitionOnChange":true,"storageKey":"theme","children":[["$","$Le",null,{}],"$undefined",["$","$Lf",null,{"pageMap":[{"data":{"index":{"title":"Willkommen zur Qwen Code Dokumentation"},"deployment":{"title":"Ausführung & Bereitstellung"},"architecture":{"title":"Architektur-Übersicht"},"cli":{"title":"CLI Nutzungsanleitung"},"core":{"title":"Kern-Details"},"tools":{"title":"Tools Sammlung"},"checkpointing":{"title":"Checkpointing-Funktion"},"extension":{"title":"Erweiterungs-Entwicklung"},"ide-integration":{"title":"IDE Integration"},"telemetry":{"title":"Observabilität"},"examples":{"title":"Beispielcode"},"npm":{"title":"Paket-Management"},"gemini-ignore":{"title":"Ignorier-Datei Konfiguration"},"integration-tests":{"title":"Integrationstests"},"keyboard-shortcuts":{"title":"Tastaturkürzel"},"sandbox":{"title":"Sandbox-Mechanismus"},"issue-and-pr-automation":{"title":"Automatisierte Behandlung"},"troubleshooting":{"title":"Fehlerbehebung"},"tos-privacy":{"title":"Nutzungsbedingungen & Datenschutz"},"Uninstall":{"title":"Deinstallations-Anleitung"}}},{"name":"index","route":"/de","frontMatter":{"title":"Willkommen zur Qwen Code Dokumentation","filePath":"content/de/index.md","timestamp":1789666354000},"title":"Willkommen zur Qwen Code Dokumentation"},{"name":"deployment","route":"/de/deployment","frontMatter":{"title":"Qwen Code Ausführung und Deployment","filePath":"content/de/deployment.md","timestamp":1789666354000},"title":"Ausführung & Bereitstellung"},{"name":"architecture","route":"/de/architecture","frontMatter":{"title":"Qwen Code Architektur-Überblick","filePath":"content/de/architecture.md","timestamp":1789666354000},"title":"Architektur-Übersicht"},{"name":"cli","route":"/de/cli","children":[{"data":{"index":{"title":"CLI Übersicht"},"commands":{"title":"Befehls-Referenz"},"configuration":{"title":"Konfigurationsanleitung"},"authentication":{"title":"Authentifizierungs-Setup"},"openai-auth":{"title":"OpenAI Authentifizierung"},"token-caching":{"title":"Token Caching"},"themes":{"title":"Theme-Konfiguration"},"tutorials":{"title":"Nutzungs-Tutorials"}}},{"name":"index","route":"/de/cli","frontMatter":{"title":"Qwen Code CLI","filePath":"content/de/cli/index.md","timestamp":1789666354000},"title":"CLI Übersicht"},{"name":"commands","route":"/de/cli/commands","frontMatter":{"title":"CLI Commands","filePath":"content/de/cli/commands.md","timestamp":1789666354000},"title":"Befehls-Referenz"},{"name":"configuration","route":"/de/cli/configuration","frontMatter":{"title":"Qwen Code Konfiguration","filePath":"content/de/cli/configuration.md","timestamp":1789666354000},"title":"Konfigurationsanleitung"},{"name":"authentication","route":"/de/cli/authentication","frontMatter":{"title":"Authentifizierung einrichten","filePath":"content/de/cli/authentication.md","timestamp":1789666354000},"title":"Authentifizierungs-Setup"},{"name":"openai-auth","route":"/de/cli/openai-auth","frontMatter":{"title":"OpenAI Authentifizierung","filePath":"content/de/cli/openai-auth.md","timestamp":1789666354000},"title":"OpenAI Authentifizierung"},{"name":"token-caching","route":"/de/cli/token-caching","frontMatter":{"title":"Token Caching und Kostenoptimierung","filePath":"content/de/cli/token-caching.md","timestamp":1789666354000},"title":"Token Caching"},{"name":"themes","route":"/de/cli/themes","frontMatter":{"title":"Themes","filePath":"content/de/cli/themes.md","timestamp":1789666354000},"title":"Theme-Konfiguration"},{"name":"tutorials","route":"/de/cli/tutorials","frontMatter":{"title":"Tutorials","filePath":"content/de/cli/tutorials.md","timestamp":1789666354000},"title":"Nutzungs-Tutorials"},{"name":"welcome-back","route":"/de/cli/welcome-back","frontMatter":{"title":"Welcome Back Feature","filePath":"content/de/cli/welcome-back.md","timestamp":1789666354000},"title":"Welcome Back Feature"}],"title":"CLI Nutzungsanleitung"},{"name":"core","route":"/de/core","children":[{"data":{"index":{"title":"Kern-Übersicht"},"tools-api":{"title":"Tools API"},"memport":{"title":"Memory Import Processor"}}},{"name":"index","route":"/de/core","frontMatter":{"title":"Qwen Code Core","filePath":"content/de/core/index.md","timestamp":1789666354000},"title":"Kern-Übersicht"},{"name":"tools-api","route":"/de/core/tools-api","frontMatter":{"title":"Qwen Code Core: Tools API","filePath":"content/de/core/tools-api.md","timestamp":1789666354000},"title":"Tools API"},{"name":"memport","route":"/de/core/memport","frontMatter":{"title":"Memory Import Processor","filePath":"content/de/core/memport.md","timestamp":1789666354000},"title":"Memory Import Processor"}],"title":"Kern-Details"},{"name":"tools","route":"/de/tools","children":[{"data":{"index":{"title":"Tools Übersicht"},"file-system":{"title":"Dateisystem-Tools"},"multi-file":{"title":"Multi-Datei Lese-Tools"},"shell":{"title":"Shell Tools"},"web-fetch":{"title":"Web Fetch Tools"},"web-search":{"title":"Web Such-Tools"},"memory":{"title":"Memory Tools"},"todo-write":{"title":"Todo Write Tool"},"mcp-server":{"title":"MCP Server"}}},{"name":"index","route":"/de/tools","frontMatter":{"title":"Qwen Code Tools","filePath":"content/de/tools/index.md","timestamp":1789666354000},"title":"Tools Übersicht"},{"name":"file-system","route":"/de/tools/file-system","frontMatter":{"title":"Qwen Code Dateisystem-Tools","filePath":"content/de/tools/file-system.md","timestamp":1789666354000},"title":"Dateisystem-Tools"},{"name":"multi-file","route":"/de/tools/multi-file","frontMatter":{"title":"Multi File Read Tool (read_many_files)","filePath":"content/de/tools/multi-file.md","timestamp":1789666354000},"title":"Multi-Datei Lese-Tools"},{"name":"shell","route":"/de/tools/shell","frontMatter":{"title":"Shell Tool (run_shell_command)","filePath":"content/de/tools/shell.md","timestamp":1789666354000},"title":"Shell Tools"},{"name":"web-fetch","route":"/de/tools/web-fetch","frontMatter":{"title":"Web Fetch Tool (web_fetch)","filePath":"content/de/tools/web-fetch.md","timestamp":1789666354000},"title":"Web Fetch Tools"},{"name":"web-search","route":"/de/tools/web-search","frontMatter":{"title":"Web Search Tool (web_search)","filePath":"content/de/tools/web-search.md","timestamp":1789666354000},"title":"Web Such-Tools"},{"name":"memory","route":"/de/tools/memory","frontMatter":{"title":"Memory Tool (save_memory)","filePath":"content/de/tools/memory.md","timestamp":1789666354000},"title":"Memory Tools"},{"name":"todo-write","route":"/de/tools/todo-write","frontMatter":{"title":"Todo Write Tool (todo_write)","filePath":"content/de/tools/todo-write.md","timestamp":1789666354000},"title":"Todo Write Tool"},{"name":"mcp-server","route":"/de/tools/mcp-server","frontMatter":{"title":"MCP-Server mit Qwen Code","filePath":"content/de/tools/mcp-server.md","timestamp":1789666354000},"title":"MCP Server"}],"title":"Tools Sammlung"},{"name":"checkpointing","route":"/de/checkpointing","frontMatter":{"title":"Checkpointing","filePath":"content/de/checkpointing.md","timestamp":1789666354000},"title":"Checkpointing-Funktion"},{"name":"extension","route":"/de/extension","frontMatter":{"title":"Qwen Code Extensions","filePath":"content/de/extension.md","timestamp":1789666354000},"title":"Erweiterungs-Entwicklung"},{"name":"ide-integration","route":"/de/ide-integration","frontMatter":{"title":"IDE-Integration","filePath":"content/de/ide-integration.md","timestamp":1789666354000},"title":"IDE Integration"},{"name":"telemetry","route":"/de/telemetry","frontMatter":{"title":"Qwen Code Observability Guide","filePath":"content/de/telemetry.md","timestamp":1789666354000},"title":"Observabilität"},{"name":"examples","route":"/de/examples","children":[{"data":{"proxy-script":{"title":"Proxy-Script Beispiel"}}},{"name":"proxy-script","route":"/de/examples/proxy-script","frontMatter":{"title":"Beispiel-Proxy-Script","filePath":"content/de/examples/proxy-script.md","timestamp":1789666354000},"title":"Proxy-Script Beispiel"}],"title":"Beispielcode"},{"name":"npm","route":"/de/npm","frontMatter":{"title":"Package Overview","filePath":"content/de/npm.md","timestamp":1789666354000},"title":"Paket-Management"},{"name":"gemini-ignore","route":"/de/gemini-ignore","frontMatter":{"title":"Dateien ignorieren","filePath":"content/de/gemini-ignore.md","timestamp":1789666354000},"title":"Ignorier-Datei Konfiguration"},{"name":"integration-tests","route":"/de/integration-tests","frontMatter":{"title":"Integration Tests","filePath":"content/de/integration-tests.md","timestamp":1789666354000},"title":"Integrationstests"},{"name":"keyboard-shortcuts","route":"/de/keyboard-shortcuts","frontMatter":{"title":"Qwen Code Tastaturkürzel","filePath":"content/de/keyboard-shortcuts.md","timestamp":1789666354000},"title":"Tastaturkürzel"},{"name":"sandbox","route":"/de/sandbox","frontMatter":{"title":"Sandboxing in Qwen Code","filePath":"content/de/sandbox.md","timestamp":1789666354000},"title":"Sandbox-Mechanismus"},{"name":"issue-and-pr-automation","route":"/de/issue-and-pr-automation","frontMatter":{"title":"Automatisierung und Triage-Prozesse","filePath":"content/de/issue-and-pr-automation.md","timestamp":1789666354000},"title":"Automatisierte Behandlung"},{"name":"troubleshooting","route":"/de/troubleshooting","frontMatter":{"title":"Leitfaden zur Fehlerbehebung","filePath":"content/de/troubleshooting.md","timestamp":1789666354000},"title":"Fehlerbehebung"},{"name":"tos-privacy","route":"/de/tos-privacy","frontMatter":{"title":"Qwen Code: Allgemeine Geschäftsbedingungen und Datenschutzhinweise","filePath":"content/de/tos-privacy.md","timestamp":1789666354000},"title":"Nutzungsbedingungen & Datenschutz"},{"name":"Uninstall","route":"/de/Uninstall","frontMatter":{"title":"Deinstallieren der CLI","filePath":"content/de/Uninstall.md","timestamp":1789666354000},"title":"Deinstallations-Anleitung"},{"name":"subagents","route":"/de/subagents","frontMatter":{"title":"Subagents","filePath":"content/de/subagents.md","timestamp":1789666354000},"title":"Subagents"}],"navbar":["$","header",null,{"className":"nextra-navbar x:sticky x:top-0 x:z-30 x:w-full x:bg-transparent x:print:hidden x:max-md:[.nextra-banner:not([class$=hidden])~&]:top-(--nextra-banner-height)","children":[["$","div",null,{"className":"nextra-navbar-blur x:absolute x:-z-1 x:size-full nextra-border x:border-b x:backdrop-blur-md x:bg-nextra-bg/70"}],["$","nav",null,{"style":{"height":"var(--nextra-navbar-height)"},"className":"x:mx-auto x:flex x:max-w-(--nextra-content-width) x:items-center x:gap-4 x:pl-[max(env(safe-area-inset-left),1.5rem)] x:pr-[max(env(safe-area-inset-right),1.5rem)] x:justify-end","children":[["$","$L10",null,{"href":"/","className":"x:flex x:items-center x:me-auto x:transition-opacity x:focus-visible:nextra-focus x:hover:opacity-75","aria-label":"Home page","children":["$","span",null,{"className":"ms-2 select-none font-extrabold flex items-center","title":"Qwen Code: AI Coding Agent","children":[["$","img",null,{"src":"https://assets.alicdn.com/g/qwenweb/qwen-webui-fe/0.0.191/static/favicon.png","alt":"Qwen Code","width":32,"height":32,"className":"inline-block align-middle mr-2 ","style":{"verticalAlign":"middle"}}],["$","span",null,{"className":"text-[1.3rem] font-normal align-middle mr-1 max-md:hidden","children":"Qwen"}],["$","span",null,{"className":"text-[1.3rem] font-normal align-middle max-md:hidden","children":"Code"}]]}]}],["$","$L11",null,{"className":"","children":[["$","a",null,{"href":"https://github.com/QwenLM/qwen-code","target":"_blank","rel":"noreferrer","children":[["$","svg",null,{"fill":"currentColor","viewBox":"3 3 18 18","height":"24","aria-label":"Project repository","children":["$","path",null,{"d":"$12"}]}],false],"className":"x:focus-visible:nextra-focus"}],"$undefined",["$","$L13",null,{"currentLang":"de"}]]}]]}]]}],"footer":null,"children":[["$","$L14",null,{}],["$","$L3",null,{"parallelRouterKey":"children","segmentPath":["children","$4","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}]]}]]}]}]
|
||
2:["$","div",null,{"className":"x:mx-auto x:flex x:max-w-(--nextra-content-width)","sourceCode":"$undefined","children":["$","$L15",null,{"value":[{"value":[["$","$16",".0",{"children":[["$","code",null,{"className":"nextra-code","dir":"ltr","children":"@qwen-code/qwen-code"}]]}]],"id":"qwen-codeqwen-code","depth":2},{"value":[["$","$16",".0",{"children":[["$","code",null,{"className":"nextra-code","dir":"ltr","children":"@qwen-code/qwen-code-core"}]]}]],"id":"qwen-codeqwen-code-core","depth":2},{"value":"How To Release","id":"how-to-release","depth":2},{"value":"Nightly Releases","id":"nightly-releases","depth":2},{"value":"Prozess","id":"prozess","depth":3},{"value":"Fehlerbehandlung","id":"fehlerbehandlung","depth":3},{"value":"Wie man den Nightly Build verwendet","id":"wie-man-den-nightly-build-verwendet","depth":3},{"value":"Nach dem Release","id":"nach-dem-release","depth":3},{"value":"Release-Validierung","id":"release-validierung","depth":2},{"value":"Wann führe ich den Versionswechsel zusammen – oder nicht?","id":"wann-führe-ich-den-versionswechsel-zusammen--oder-nicht","depth":2},{"value":"Merge Back für Stable Patches und Hotfixes","id":"merge-back-für-stable-patches-und-hotfixes","depth":3},{"value":"NICHT zurückmergen für Pre-Releases (RC, Beta, Dev)","id":"nicht-zurückmergen-für-pre-releases-rc-beta-dev","depth":3},{"value":"Lokales Testen und Validieren: Änderungen am Packaging- und Publishing-Prozess","id":"lokales-testen-und-validieren-änderungen-am-packaging--und-publishing-prozess","depth":2},{"value":"Release Deep Dive","id":"release-deep-dive","depth":2},{"value":"Zusammenfassung des Dateiflusses","id":"zusammenfassung-des-dateiflusses","depth":3},{"value":"NPM Workspaces","id":"npm-workspaces","depth":2},{"value":"Funktionsweise","id":"funktionsweise","depth":3},{"value":"Vorteile von Workspaces","id":"vorteile-von-workspaces","depth":3}],"children":[["$","$L17",null,{}],["$","$L18",null,{"metadata":{"title":"Package Overview","filePath":"content/de/npm.md","timestamp":1789666354000},"bottomContent":"$undefined","children":[["$","div",null,{"id":"nextra-skip-nav"}],["$","main",null,{"data-pagefind-body":true,"children":[["$","h1",null,{"id":"$undefined","className":"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-bold x:mt-2 x:text-4xl","children":["Package Overview","$undefined"]}],"\n",["$","p",null,{"className":"x:not-first:mt-[1.25em] x:leading-7","children":["Dieses Monorepo enthält zwei Hauptpakete: ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"@qwen-code/qwen-code"}]," und ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"@qwen-code/qwen-code-core"}],"."]}],"\n",["$","h2",null,{"id":"qwen-codeqwen-code","className":"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-10 x:border-b x:pb-1 x:text-3xl nextra-border","children":[["$","code",null,{"className":"nextra-code","dir":"ltr","children":"@qwen-code/qwen-code"}],["$","$L19",null,{"id":"qwen-codeqwen-code"}]]}],"\n",["$","p",null,{"className":"x:not-first:mt-[1.25em] x:leading-7","children":"Dies ist das Hauptpaket für Qwen Code. Es ist verantwortlich für die Benutzeroberfläche, das Parsen von Commands und alle anderen benutzerseitigen Funktionen."}],"\n",["$","p",null,{"className":"x:not-first:mt-[1.25em] x:leading-7","children":["Wenn dieses Paket veröffentlicht wird, wird es in eine einzelne ausführbare Datei gebundled. Dieses Bundle enthält alle Abhängigkeiten des Pakets, inklusive ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"@qwen-code/qwen-code-core"}],". Das bedeutet, egal ob ein User das Paket mit ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"npm install -g @qwen-code/qwen-code"}]," installiert oder es direkt mit ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"npx @qwen-code/qwen-code"}]," ausführt – er verwendet diese eine eigenständige, ausführbare Datei."]}],"\n",["$","h2",null,{"id":"qwen-codeqwen-code-core","className":"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-10 x:border-b x:pb-1 x:text-3xl nextra-border","children":[["$","code",null,{"className":"nextra-code","dir":"ltr","children":"@qwen-code/qwen-code-core"}],["$","$L19",null,{"id":"qwen-codeqwen-code-core"}]]}],"\n",["$","p",null,{"className":"x:not-first:mt-[1.25em] x:leading-7","children":"Dieses Package enthält die Kernlogik für die CLI. Es ist verantwortlich für das Senden von API-Anfragen an konfigurierte Provider, die Authentifizierung und das Management des lokalen Caches."}],"\n",["$","p",null,{"className":"x:not-first:mt-[1.25em] x:leading-7","children":["Dieses Package wird nicht gebundled. Bei der Veröffentlichung wird es als Standard-Node.js-Package mit seinen eigenen Abhängigkeiten veröffentlicht. Dadurch kann es bei Bedarf als eigenständiges Package in anderen Projekten verwendet werden. Der gesamte transpilierte JavaScript-Code im ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"dist"}],"-Ordner ist im Package enthalten."]}],"\n",["$","h1",null,{"id":"$undefined","className":"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-bold x:mt-2 x:text-4xl","children":["Release-Prozess","$undefined"]}],"\n",["$","p",null,{"className":"x:not-first:mt-[1.25em] x:leading-7","children":"Dieses Projekt folgt einem strukturierten Release-Prozess, um sicherzustellen, dass alle Packages korrekt versioniert und veröffentlicht werden. Der Prozess ist so weit wie möglich automatisiert."}],"\n",["$","h2",null,{"id":"how-to-release","className":"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-10 x:border-b x:pb-1 x:text-3xl nextra-border","children":["How To Release",["$","$L19",null,{"id":"how-to-release"}]]}],"\n",["$","p",null,{"className":"x:not-first:mt-[1.25em] x:leading-7","children":["Releases werden über den ",["$","a",null,{"href":"https://github.com/QwenLM/qwen-code/actions/workflows/release.yml","target":"_blank","rel":"noreferrer","className":"x:focus-visible:nextra-focus x:text-primary-600 x:underline x:hover:no-underline x:decoration-from-font x:[text-underline-position:from-font]","children":["release.yml",[" ",["$","svg",null,{"fill":"none","stroke":"currentColor","strokeLinecap":"round","strokeLinejoin":"round","strokeWidth":1.7,"viewBox":"0 0 24 24","height":"1em","className":"x:inline x:align-baseline x:shrink-0","children":[["$","path",null,{"d":"M7 17L17 7"}],["$","path",null,{"d":"M7 7h10v10"}]]}]]]}]," GitHub Actions Workflow verwaltet. Um ein manuelles Release für einen Patch oder Hotfix durchzuführen:"]}],"\n",["$","ol",null,{"className":"x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-decimal x:ms-6","children":["\n",["$","li",null,{"className":"x:my-[.5em]","children":["Gehe zum ",["$","strong",null,{"children":"Actions"}],"-Tab des Repositories."]}],"\n",["$","li",null,{"className":"x:my-[.5em]","children":["Wähle den ",["$","strong",null,{"children":"Release"}],"-Workflow aus der Liste aus."]}],"\n",["$","li",null,{"className":"x:my-[.5em]","children":["Klicke auf die Dropdown-Schaltfläche ",["$","strong",null,{"children":"Run workflow"}],"."]}],"\n",["$","li",null,{"className":"x:my-[.5em]","children":["Fülle die erforderlichen Eingaben aus:\n",["$","ul",null,{"className":"x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]","children":["\n",["$","li",null,{"className":"x:my-[.5em]","children":[["$","strong",null,{"children":"Version"}],": Die exakte Version, die released werden soll (z. B. ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"v0.2.1"}],")."]}],"\n",["$","li",null,{"className":"x:my-[.5em]","children":[["$","strong",null,{"children":"Ref"}],": Der Branch oder Commit-SHA, von dem aus released werden soll (standardmäßig ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"main"}],")."]}],"\n",["$","li",null,{"className":"x:my-[.5em]","children":[["$","strong",null,{"children":"Dry Run"}],": Auf ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"true"}]," belassen, um den Workflow zu testen, ohne ihn zu veröffentlichen, oder auf ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"false"}]," setzen, um ein echtes Release durchzuführen."]}],"\n"]}],"\n"]}],"\n",["$","li",null,{"className":"x:my-[.5em]","children":["Klicke auf ",["$","strong",null,{"children":"Run workflow"}],"."]}],"\n"]}],"\n",["$","h2",null,{"id":"nightly-releases","className":"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-10 x:border-b x:pb-1 x:text-3xl nextra-border","children":["Nightly Releases",["$","$L19",null,{"id":"nightly-releases"}]]}],"\n",["$","p",null,{"className":"x:not-first:mt-[1.25em] x:leading-7","children":"Zusätzlich zu manuellen Releases verfügt dieses Projekt über einen automatisierten Nightly-Release-Prozess, um die neueste “bleeding edge”-Version zum Testen und Entwickeln bereitzustellen."}],"\n",["$","h3",null,{"id":"prozess","className":"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl","children":["Prozess",["$","$L19",null,{"id":"prozess"}]]}],"\n",["$","p",null,{"className":"x:not-first:mt-[1.25em] x:leading-7","children":["Jede Nacht um Mitternacht UTC wird der ",["$","a",null,{"href":"https://github.com/QwenLM/qwen-code/actions/workflows/release.yml","target":"_blank","rel":"noreferrer","className":"x:focus-visible:nextra-focus x:text-primary-600 x:underline x:hover:no-underline x:decoration-from-font x:[text-underline-position:from-font]","children":["Release-Workflow",[" ",["$","svg",null,{"fill":"none","stroke":"currentColor","strokeLinecap":"round","strokeLinejoin":"round","strokeWidth":1.7,"viewBox":"0 0 24 24","height":"1em","className":"x:inline x:align-baseline x:shrink-0","children":[["$","path",null,{"d":"M7 17L17 7"}],["$","path",null,{"d":"M7 7h10v10"}]]}]]]}]," automatisch nach Zeitplan ausgeführt. Er führt folgende Schritte durch:"]}],"\n",["$","ol",null,{"className":"x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-decimal x:ms-6","children":["\n",["$","li",null,{"className":"x:my-[.5em]","children":["Checkt den neuesten Code aus dem ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"main"}],"-Branch aus."]}],"\n",["$","li",null,{"className":"x:my-[.5em]","children":"Installiert alle Abhängigkeiten."}],"\n",["$","li",null,{"className":"x:my-[.5em]","children":["Führt die vollständige Suite an ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"preflight"}],"-Checks und Integrationstests aus."]}],"\n",["$","li",null,{"className":"x:my-[.5em]","children":["Falls alle Tests erfolgreich sind, wird die nächste Nightly-Version berechnet (z. B. ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"v0.2.1-nightly.20230101"}],")."]}],"\n",["$","li",null,{"className":"x:my-[.5em]","children":["Anschließend werden die Pakete gebaut und mit dem ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"nightly"}]," dist-tag auf npm veröffentlicht."]}],"\n",["$","li",null,{"className":"x:my-[.5em]","children":"Abschließend wird ein GitHub Release für die Nightly-Version erstellt."}],"\n"]}],"\n",["$","h3",null,{"id":"fehlerbehandlung","className":"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl","children":["Fehlerbehandlung",["$","$L19",null,{"id":"fehlerbehandlung"}]]}],"\n",["$","p",null,{"className":"x:not-first:mt-[1.25em] x:leading-7","children":["Falls ein Schritt im Nightly-Workflow fehlschlägt, wird automatisch ein neues Issue im Repository erstellt, gekennzeichnet mit den Labels ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"bug"}]," und ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"nightly-failure"}],". Das Issue enthält einen Link zum fehlgeschlagenen Workflow-Lauf, um das Debugging zu erleichtern."]}],"\n",["$","h3",null,{"id":"wie-man-den-nightly-build-verwendet","className":"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl","children":["Wie man den Nightly Build verwendet",["$","$L19",null,{"id":"wie-man-den-nightly-build-verwendet"}]]}],"\n",["$","p",null,{"className":"x:not-first:mt-[1.25em] x:leading-7","children":["Um den neuesten Nightly Build zu installieren, verwende den ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"@nightly"}]," Tag:"]}],"\n",["$","div",null,{"data-pagefind-ignore":"all","className":"nextra-code x:relative x:not-first:mt-[1.25em]","children":["$undefined",["$","pre",null,{"className":"x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose","tabIndex":"0","children":[["$","div",null,{"className":"x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2","children":[["$","$L1a",null,{"children":["$","svg",null,{"viewBox":"0 0 24 24","fill":"currentColor","height":"1em","children":["$","path",null,{"d":"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"}]}]}],false]}],["$","code",null,{"className":"nextra-code","dir":"ltr","children":["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},"children":"npm"}],["$","span",null,{"style":{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},"children":" install"}],["$","span",null,{"style":{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"},"children":" -g"}],["$","span",null,{"style":{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},"children":" @qwen-code/qwen-code@nightly"}]]}]}]]}]]}],"\n",["$","p",null,{"className":"x:not-first:mt-[1.25em] x:leading-7","children":["Wir führen außerdem einen Google Cloud Build namens ",["$","$L10",null,{"href":"../.gcp/release-docker.yml","prefetch":"$undefined","className":"x:focus-visible:nextra-focus x:text-primary-600 x:underline x:hover:no-underline x:decoration-from-font x:[text-underline-position:from-font]","children":"release-docker.yml"}]," aus. Dieser veröffentlicht das Sandbox-Docker-Image entsprechend deinem Release. Sobald die Service-Account-Berechtigungen geklärt sind, wird dies ebenfalls auf GitHub verschoben und mit der Haupt-Release-Datei zusammengeführt."]}],"\n",["$","h3",null,{"id":"nach-dem-release","className":"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl","children":["Nach dem Release",["$","$L19",null,{"id":"nach-dem-release"}]]}],"\n",["$","p",null,{"className":"x:not-first:mt-[1.25em] x:leading-7","children":["Sobald der Workflow erfolgreich abgeschlossen ist, kannst du den Fortschritt im ",["$","a",null,{"href":"https://github.com/QwenLM/qwen-code/actions/workflows/release.yml","target":"_blank","rel":"noreferrer","className":"x:focus-visible:nextra-focus x:text-primary-600 x:underline x:hover:no-underline x:decoration-from-font x:[text-underline-position:from-font]","children":["GitHub Actions Tab",[" ",["$","svg",null,{"fill":"none","stroke":"currentColor","strokeLinecap":"round","strokeLinejoin":"round","strokeWidth":1.7,"viewBox":"0 0 24 24","height":"1em","className":"x:inline x:align-baseline x:shrink-0","children":[["$","path",null,{"d":"M7 17L17 7"}],["$","path",null,{"d":"M7 7h10v10"}]]}]]]}]," verfolgen. Wenn der Vorgang abgeschlossen ist, solltest du folgende Schritte durchführen:"]}],"\n",["$","ol",null,{"className":"x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-decimal x:ms-6","children":["\n",["$","li",null,{"className":"x:my-[.5em]","children":["Gehe zur ",["$","a",null,{"href":"https://github.com/QwenLM/qwen-code/pulls","target":"_blank","rel":"noreferrer","className":"x:focus-visible:nextra-focus x:text-primary-600 x:underline x:hover:no-underline x:decoration-from-font x:[text-underline-position:from-font]","children":["Pull Requests-Seite",[" ",["$","svg",null,{"fill":"none","stroke":"currentColor","strokeLinecap":"round","strokeLinejoin":"round","strokeWidth":1.7,"viewBox":"0 0 24 24","height":"1em","className":"x:inline x:align-baseline x:shrink-0","children":[["$","path",null,{"d":"M7 17L17 7"}],["$","path",null,{"d":"M7 7h10v10"}]]}]]]}]," des Repositories."]}],"\n",["$","li",null,{"className":"x:my-[.5em]","children":["Erstelle einen neuen Pull Request vom Branch ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"release/vX.Y.Z"}]," in den ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"main"}],"-Branch."]}],"\n",["$","li",null,{"className":"x:my-[.5em]","children":["Überprüfe den Pull Request (er sollte nur Versionsaktualisierungen in den ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"package.json"}],"-Dateien enthalten) und merge ihn. Dadurch bleibt die Version im ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"main"}],"-Branch aktuell."]}],"\n"]}],"\n",["$","h2",null,{"id":"release-validierung","className":"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-10 x:border-b x:pb-1 x:text-3xl nextra-border","children":["Release-Validierung",["$","$L19",null,{"id":"release-validierung"}]]}],"\n",["$","p",null,{"className":"x:not-first:mt-[1.25em] x:leading-7","children":"Nach dem Pushen eines neuen Releases sollte ein Smoke-Test durchgeführt werden, um sicherzustellen, dass die Pakete wie erwartet funktionieren. Dies kann durch eine lokale Installation der Pakete und das Ausführen einer Reihe von Tests erfolgen, um ihre ordnungsgemäße Funktionsweise zu überprüfen."}],"\n",["$","ul",null,{"className":"x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]","children":["\n",["$","li",null,{"className":"x:my-[.5em]","children":[["$","code",null,{"className":"nextra-code","dir":"ltr","children":"npx -y @qwen-code/qwen-code@latest --version"}],", um zu validieren, dass der Push erfolgreich war, sofern kein RC- oder Dev-Tag verwendet wurde"]}],"\n",["$","li",null,{"className":"x:my-[.5em]","children":[["$","code",null,{"className":"nextra-code","dir":"ltr","children":"npx -y @qwen-code/qwen-code@<release tag> --version"}],", um zu überprüfen, ob der Tag korrekt gepusht wurde"]}],"\n",["$","li",null,{"className":"x:my-[.5em]","children":[["$","em",null,{"children":"Dies ist lokal destruktiv"}],": ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"npm uninstall @qwen-code/qwen-code && npm uninstall -g @qwen-code/qwen-code && npm cache clean --force && npm install @qwen-code/qwen-code@<version>"}]]}],"\n",["$","li",null,{"className":"x:my-[.5em]","children":"Für den Smoke-Test wird empfohlen, einige grundlegende LLM-Befehle und Tools auszuführen, um sicherzustellen, dass die Pakete wie erwartet funktionieren. Wir werden dies in Zukunft weiter formalisieren."}],"\n"]}],"\n",["$","h2",null,{"id":"wann-führe-ich-den-versionswechsel-zusammen--oder-nicht","className":"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-10 x:border-b x:pb-1 x:text-3xl nextra-border","children":["Wann führe ich den Versionswechsel zusammen – oder nicht?",["$","$L19",null,{"id":"wann-führe-ich-den-versionswechsel-zusammen--oder-nicht"}]]}],"\n",["$","p",null,{"className":"x:not-first:mt-[1.25em] x:leading-7","children":"Das oben beschriebene Muster zum Erstellen von Patch- oder Hotfix-Releases von aktuellen oder älteren Commits aus lässt das Repository in folgendem Zustand zurück:"}],"\n",["$","ol",null,{"className":"x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-decimal x:ms-6","children":["\n",["$","li",null,{"className":"x:my-[.5em]","children":["Der Tag (",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"vX.Y.Z-patch.1"}],"): Dieser Tag zeigt korrekterweise auf den ursprünglichen Commit im main-Branch, der den stabilen Code enthält, den du veröffentlichen wolltest. Das ist entscheidend. Jeder, der diesen Tag auscheckt, erhält exakt den Code, der veröffentlicht wurde."]}],"\n",["$","li",null,{"className":"x:my-[.5em]","children":["Der Branch (",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"release-vX.Y.Z-patch.1"}],"): Dieser Branch enthält einen neuen Commit über dem getaggten Commit. Dieser neue Commit enthält nur die Versionsnummer-Änderung in der package.json (und anderen zugehörigen Dateien wie package-lock.json)."]}],"\n"]}],"\n",["$","p",null,{"className":"x:not-first:mt-[1.25em] x:leading-7","children":"Diese Trennung ist gut. Sie hält den Verlauf deines main-Branch sauber von Release-spezifischen Versionsanhebungen, bis du dich entscheidest, sie zusammenzuführen."}],"\n",["$","p",null,{"className":"x:not-first:mt-[1.25em] x:leading-7","children":"Das ist die entscheidende Frage, und sie hängt vollständig von der Art des Releases ab."}],"\n",["$","h3",null,{"id":"merge-back-für-stable-patches-und-hotfixes","className":"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl","children":["Merge Back für Stable Patches und Hotfixes",["$","$L19",null,{"id":"merge-back-für-stable-patches-und-hotfixes"}]]}],"\n",["$","p",null,{"className":"x:not-first:mt-[1.25em] x:leading-7","children":["In den meisten Fällen solltest du den ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"release-<tag>"}]," Branch zurück in ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"main"}]," mergen, sobald du einen Stable Patch oder Hotfix releast."]}],"\n",["$","ul",null,{"className":"x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]","children":["\n",["$","li",null,{"className":"x:my-[.5em]","children":["Warum? Der Hauptgrund ist, dass die Version in der package.json des main Branches aktualisiert werden muss. Wenn du z. B. v1.2.1 von einem älteren Commit releast, aber den Versionsbump nie zurückmerge, wird deine package.json im main Branch weiterhin ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"\"version\": \"1.2.0\""}]," anzeigen. Der nächste Entwickler, der mit der Arbeit an der nächsten Feature-Release (z. B. v1.3.0) beginnt, wird von einer Codebasis ausgehen, die eine falsche, veraltete Versionsnummer enthält. Das führt zu Verwirrung und erfordert später manuelles Anpassen der Versionsnummer."]}],"\n",["$","li",null,{"className":"x:my-[.5em]","children":["Der Prozess: Nachdem der release-v1.2.1 Branch erstellt und das Paket erfolgreich veröffentlicht wurde, solltest du einen Pull Request öffnen, um release-v1.2.1 in den main Branch zu mergen. Dieser PR enthält nur einen einzigen Commit: ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"\"chore: bump version to v1.2.1\""}],". Es ist eine saubere und einfache Integration, die deinen main Branch mit der zuletzt releasten Version synchron hält."]}],"\n"]}],"\n",["$","h3",null,{"id":"nicht-zurückmergen-für-pre-releases-rc-beta-dev","className":"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl","children":["NICHT zurückmergen für Pre-Releases (RC, Beta, Dev)",["$","$L19",null,{"id":"nicht-zurückmergen-für-pre-releases-rc-beta-dev"}]]}],"\n",["$","p",null,{"className":"x:not-first:mt-[1.25em] x:leading-7","children":["Release Branches für Pre-Releases werden in der Regel nicht in ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"main"}]," zurückgemerged."]}],"\n",["$","ul",null,{"className":"x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]","children":["\n",["$","li",null,{"className":"x:my-[.5em]","children":"Warum? Pre-Release-Versionen (z. B. v1.3.0-rc.1, v1.3.0-rc.2) sind definitionsgemäß nicht stabil und nur temporär. Du willst den Verlauf deines main-Branches nicht mit einer Reihe von Versionsanpassungen für Release Candidates verschmutzen. Die package.json in main sollte die neueste stabile Release-Version widerspiegeln, nicht einen RC."}],"\n",["$","li",null,{"className":"x:my-[.5em]","children":["Der Prozess: Der release-v1.3.0-rc.1-Branch wird erstellt, der Befehl ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"npm publish --tag rc"}]," ausgeführt, und danach hat der Branch seinen Zweck erfüllt. Du kannst ihn einfach löschen. Der Code für den RC ist bereits in main (oder einem Feature-Branch), daher geht kein funktionaler Code verloren. Der Release-Branch war nur ein temporäres Mittel, um die Versionsnummer zu transportieren."]}],"\n"]}],"\n",["$","h2",null,{"id":"lokales-testen-und-validieren-änderungen-am-packaging--und-publishing-prozess","className":"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-10 x:border-b x:pb-1 x:text-3xl nextra-border","children":["Lokales Testen und Validieren: Änderungen am Packaging- und Publishing-Prozess",["$","$L19",null,{"id":"lokales-testen-und-validieren-änderungen-am-packaging--und-publishing-prozess"}]]}],"\n",["$","p",null,{"className":"x:not-first:mt-[1.25em] x:leading-7","children":"Wenn du den Release-Prozess testen musst, ohne tatsächlich auf NPM zu veröffentlichen oder ein öffentliches GitHub-Release zu erstellen, kannst du den Workflow manuell über die GitHub-UI auslösen."}],"\n",["$","ol",null,{"className":"x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-decimal x:ms-6","children":["\n",["$","li",null,{"className":"x:my-[.5em]","children":["Gehe zum ",["$","a",null,{"href":"https://github.com/QwenLM/qwen-code/actions/workflows/release.yml","target":"_blank","rel":"noreferrer","className":"x:focus-visible:nextra-focus x:text-primary-600 x:underline x:hover:no-underline x:decoration-from-font x:[text-underline-position:from-font]","children":["Actions-Tab",[" ",["$","svg",null,{"fill":"none","stroke":"currentColor","strokeLinecap":"round","strokeLinejoin":"round","strokeWidth":1.7,"viewBox":"0 0 24 24","height":"1em","className":"x:inline x:align-baseline x:shrink-0","children":[["$","path",null,{"d":"M7 17L17 7"}],["$","path",null,{"d":"M7 7h10v10"}]]}]]]}]," des Repositories."]}],"\n",["$","li",null,{"className":"x:my-[.5em]","children":"Klicke auf das Dropdown-Menü „Run workflow“."}],"\n",["$","li",null,{"className":"x:my-[.5em]","children":["Lass die Option ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"dry_run"}]," aktiviert (",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"true"}],")."]}],"\n",["$","li",null,{"className":"x:my-[.5em]","children":"Klicke auf den Button „Run workflow“."}],"\n"]}],"\n",["$","p",null,{"className":"x:not-first:mt-[1.25em] x:leading-7","children":["Dadurch wird der gesamte Release-Prozess ausgeführt, jedoch werden die Schritte ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"npm publish"}]," und ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"gh release create"}]," übersprungen. Du kannst die Workflow-Logs einsehen, um sicherzustellen, dass alles wie erwartet funktioniert."]}],"\n",["$","p",null,{"className":"x:not-first:mt-[1.25em] x:leading-7","children":"Es ist entscheidend, Änderungen am Packaging- und Publishing-Prozess lokal zu testen, bevor du sie committest. Dadurch wird sichergestellt, dass die Pakete korrekt veröffentlicht werden und wie erwartet funktionieren, wenn sie von einem Benutzer installiert werden."}],"\n",["$","p",null,{"className":"x:not-first:mt-[1.25em] x:leading-7","children":"Um deine Änderungen zu validieren, kannst du einen Dry-Run des Publishing-Prozesses durchführen. Dies simuliert den Publishing-Prozess, ohne tatsächlich Pakete im npm-Registry zu veröffentlichen."}],"\n",["$","div",null,{"data-pagefind-ignore":"all","className":"nextra-code x:relative x:not-first:mt-[1.25em]","children":["$undefined",["$","pre",null,{"className":"x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose","tabIndex":"0","children":[["$","div",null,{"className":"x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2","children":[["$","$L1a",null,{"children":["$","svg",null,{"viewBox":"0 0 24 24","fill":"currentColor","height":"1em","children":["$","path",null,{"d":"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"}]}]}],false]}],["$","code",null,{"className":"nextra-code","dir":"ltr","children":["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":"npm_package_version"}],["$","span",null,{"style":{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},"children":"="}],["$","span",null,{"style":{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},"children":"9.9.9"}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":" SANDBOX_IMAGE_REGISTRY"}],["$","span",null,{"style":{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},"children":"="}],["$","span",null,{"style":{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},"children":"\"registry\""}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":" SANDBOX_IMAGE_NAME"}],["$","span",null,{"style":{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},"children":"="}],["$","span",null,{"style":{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},"children":"\"thename\""}],["$","span",null,{"style":{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},"children":" npm"}],["$","span",null,{"style":{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},"children":" run"}],["$","span",null,{"style":{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},"children":" publish:npm"}],["$","span",null,{"style":{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"},"children":" --dry-run"}]]}]}]]}]]}],"\n",["$","p",null,{"className":"x:not-first:mt-[1.25em] x:leading-7","children":"Dieser Befehl führt folgende Schritte aus:"}],"\n",["$","ol",null,{"className":"x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-decimal x:ms-6","children":["\n",["$","li",null,{"className":"x:my-[.5em]","children":"Erstellt alle Pakete."}],"\n",["$","li",null,{"className":"x:my-[.5em]","children":"Führt alle Prepublish-Skripte aus."}],"\n",["$","li",null,{"className":"x:my-[.5em]","children":"Erstellt die Paket-Tarballs, die auf npm veröffentlicht würden."}],"\n",["$","li",null,{"className":"x:my-[.5em]","children":"Gibt eine Zusammenfassung der Pakete aus, die veröffentlicht werden würden."}],"\n"]}],"\n",["$","p",null,{"className":"x:not-first:mt-[1.25em] x:leading-7","children":["Du kannst dann die generierten Tarballs überprüfen, um sicherzustellen, dass sie die korrekten Dateien enthalten und dass die ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"package.json"}],"-Dateien korrekt aktualisiert wurden. Die Tarballs werden im Stammverzeichnis jedes Pakets erstellt (z. B. ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"packages/cli/qwen-code-0.1.6.tgz"}],")."]}],"\n",["$","p",null,{"className":"x:not-first:mt-[1.25em] x:leading-7","children":"Durch das Durchführen eines Dry-Runs kannst du sicherstellen, dass deine Änderungen am Packaging-Prozess korrekt sind und dass die Pakete erfolgreich veröffentlicht werden."}],"\n",["$","h2",null,{"id":"release-deep-dive","className":"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-10 x:border-b x:pb-1 x:text-3xl nextra-border","children":["Release Deep Dive",["$","$L19",null,{"id":"release-deep-dive"}]]}],"\n",["$","p",null,{"className":"x:not-first:mt-[1.25em] x:leading-7","children":["Das Hauptziel des Release-Prozesses ist es, den Source Code aus dem ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"packages/"}],"-Verzeichnis zu nehmen, zu bauen und ein sauberes, eigenständiges Paket in einem temporären ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"bundle"}],"-Verzeichnis im Root des Projekts zusammenzustellen. Dieses ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"bundle"}],"-Verzeichnis ist es, das letztendlich auf NPM veröffentlicht wird."]}],"\n",["$","p",null,{"className":"x:not-first:mt-[1.25em] x:leading-7","children":"Hier sind die wichtigsten Schritte:"}],"\n",["$","p",null,{"className":"x:not-first:mt-[1.25em] x:leading-7","children":["$","strong",null,{"children":"Stage 1: Pre-Release Sanity Checks und Versionierung"}]}],"\n",["$","ul",null,{"className":"x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]","children":["\n",["$","li",null,{"className":"x:my-[.5em]","children":["Was passiert: Bevor Dateien verschoben werden, stellt der Prozess sicher, dass sich das Projekt in einem guten Zustand befindet. Dazu gehören Tests, Linting und Type-Checking (",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"npm run preflight"}],"). Die Versionsnummer in der Root-",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"package.json"}]," und in ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"packages/cli/package.json"}]," wird auf die neue Release-Version aktualisiert."]}],"\n",["$","li",null,{"className":"x:my-[.5em]","children":"Warum: Dadurch wird sichergestellt, dass nur hochwertiger, funktionierender Code veröffentlicht wird. Die Versionierung ist der erste Schritt, um ein neues Release zu kennzeichnen."}],"\n"]}],"\n",["$","p",null,{"className":"x:not-first:mt-[1.25em] x:leading-7","children":["$","strong",null,{"children":"Stage 2: Kompilieren des Source Codes"}]}],"\n",["$","ul",null,{"className":"x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]","children":["\n",["$","li",null,{"className":"x:my-[.5em]","children":["Was passiert: Der TypeScript-Code in ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"packages/core/src"}]," und ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"packages/cli/src"}]," wird in JavaScript kompiliert."]}],"\n",["$","li",null,{"className":"x:my-[.5em]","children":["Dateibewegung:\n",["$","ul",null,{"className":"x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]","children":["\n",["$","li",null,{"className":"x:my-[.5em]","children":[["$","code",null,{"className":"nextra-code","dir":"ltr","children":"packages/core/src/**/*.ts"}]," → kompiliert zu → ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"packages/core/dist/"}]]}],"\n",["$","li",null,{"className":"x:my-[.5em]","children":[["$","code",null,{"className":"nextra-code","dir":"ltr","children":"packages/cli/src/**/*.ts"}]," → kompiliert zu → ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"packages/cli/dist/"}]]}],"\n"]}],"\n"]}],"\n",["$","li",null,{"className":"x:my-[.5em]","children":"Warum: Der TypeScript-Code, der während der Entwicklung geschrieben wurde, muss in reines JavaScript umgewandelt werden, das von Node.js ausgeführt werden kann. Das Core-Package wird zuerst gebaut, da das CLI-Package davon abhängt."}],"\n"]}],"\n",["$","p",null,{"className":"x:not-first:mt-[1.25em] x:leading-7","children":["$","strong",null,{"children":"Stage 3: Zusammenstellen des finalen, veröffentlichbaren Pakets"}]}],"\n",["$","p",null,{"className":"x:not-first:mt-[1.25em] x:leading-7","children":["Dies ist die kritischste Phase, in der Dateien verschoben und in ihren finalen Zustand für die Veröffentlichung gebracht werden. Ein temporäres ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"bundle"}],"-Verzeichnis wird im Projekt-Root erstellt, um den finalen Paketinhalt aufzunehmen."]}],"\n",["$","ol",null,{"className":"x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-decimal x:ms-6","children":["\n",["$","li",null,{"className":"x:my-[.5em]","children":["\n",["$","p",null,{"className":"x:not-first:mt-[1.25em] x:leading-7","children":["$","strong",null,{"children":["Die ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"package.json"}]," wird transformiert:"]}]}],"\n",["$","ul",null,{"className":"x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]","children":["\n",["$","li",null,{"className":"x:my-[.5em]","children":["Was passiert: Die ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"package.json"}]," aus ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"packages/cli/"}]," wird eingelesen, modifiziert und in das Root-",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"bundle"}],"/-Verzeichnis geschrieben."]}],"\n",["$","li",null,{"className":"x:my-[.5em]","children":["Dateibewegung: ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"packages/cli/package.json"}]," → (In-Memory-Transformation) → ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"bundle/package.json"}]]}],"\n",["$","li",null,{"className":"x:my-[.5em]","children":["Warum: Die finale ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"package.json"}]," muss sich von der unterscheiden, die während der Entwicklung verwendet wird. Wichtige Änderungen sind:\n",["$","ul",null,{"className":"x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]","children":["\n",["$","li",null,{"className":"x:my-[.5em]","children":["Entfernen von ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"devDependencies"}],"."]}],"\n",["$","li",null,{"className":"x:my-[.5em]","children":["Entfernen von workspace-spezifischen ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"\"dependencies\": { \"@qwen-code/core\": \"workspace:*\" }"}]," und sicherstellen, dass der Core-Code direkt in die finale JavaScript-Datei gebundled wird."]}],"\n",["$","li",null,{"className":"x:my-[.5em]","children":["Sicherstellen, dass die Felder ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"bin"}],", ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"main"}]," und ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"files"}]," auf die korrekten Pfade innerhalb der finalen Paketstruktur zeigen."]}],"\n"]}],"\n"]}],"\n"]}],"\n"]}],"\n",["$","li",null,{"className":"x:my-[.5em]","children":["\n",["$","p",null,{"className":"x:not-first:mt-[1.25em] x:leading-7","children":["$","strong",null,{"children":"Das JavaScript-Bundle wird erstellt:"}]}],"\n",["$","ul",null,{"className":"x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]","children":["\n",["$","li",null,{"className":"x:my-[.5em]","children":["Was passiert: Der gebaute JavaScript-Code aus ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"packages/core/dist"}]," und ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"packages/cli/dist"}]," wird in eine einzelne, ausführbare JavaScript-Datei gebundled."]}],"\n",["$","li",null,{"className":"x:my-[.5em]","children":["Dateibewegung: ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"packages/cli/dist/index.js"}]," + ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"packages/core/dist/index.js"}]," → (gebundled durch esbuild) → ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"bundle/gemini.js"}]," (oder ein ähnlicher Name)."]}],"\n",["$","li",null,{"className":"x:my-[.5em]","children":"Warum: Dies erzeugt eine einzelne, optimierte Datei, die den gesamten benötigten Anwendungscode enthält. Es vereinfacht das Paket, da das Core-Package nicht mehr als separate Abhängigkeit auf NPM benötigt wird – sein Code ist jetzt direkt enthalten."}],"\n"]}],"\n"]}],"\n",["$","li",null,{"className":"x:my-[.5em]","children":["\n",["$","p",null,{"className":"x:not-first:mt-[1.25em] x:leading-7","children":["$","strong",null,{"children":"Statische und unterstützende Dateien werden kopiert:"}]}],"\n",["$","ul",null,{"className":"x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]","children":["\n",["$","li",null,{"className":"x:my-[.5em]","children":["Was passiert: Wesentliche Dateien, die nicht Teil des Source Codes sind, aber für das korrekte Funktionieren oder die Beschreibung des Pakets benötigt werden, werden in das ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"bundle"}],"-Verzeichnis kopiert."]}],"\n",["$","li",null,{"className":"x:my-[.5em]","children":["Dateibewegung:\n",["$","ul",null,{"className":"x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]","children":["\n",["$","li",null,{"className":"x:my-[.5em]","children":[["$","code",null,{"className":"nextra-code","dir":"ltr","children":"README.md"}]," → ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"bundle/README.md"}]]}],"\n",["$","li",null,{"className":"x:my-[.5em]","children":[["$","code",null,{"className":"nextra-code","dir":"ltr","children":"LICENSE"}]," → ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"bundle/LICENSE"}]]}],"\n",["$","li",null,{"className":"x:my-[.5em]","children":[["$","code",null,{"className":"nextra-code","dir":"ltr","children":"packages/cli/src/utils/*.sb"}]," (Sandbox-Profile) → ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"bundle/"}]]}],"\n"]}],"\n"]}],"\n",["$","li",null,{"className":"x:my-[.5em]","children":["Warum:\n",["$","ul",null,{"className":"x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]","children":["\n",["$","li",null,{"className":"x:my-[.5em]","children":[["$","code",null,{"className":"nextra-code","dir":"ltr","children":"README.md"}]," und ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"LICENSE"}]," sind Standarddateien, die in jedem NPM-Paket enthalten sein sollten."]}],"\n",["$","li",null,{"className":"x:my-[.5em]","children":["Die Sandbox-Profile (",["$","code",null,{"className":"nextra-code","dir":"ltr","children":".sb"}],"-Dateien) sind kritische Laufzeit-Assets, die für die Sandbox-Funktion des CLI erforderlich sind. Sie müssen sich direkt neben der finalen ausführbaren Datei befinden."]}],"\n"]}],"\n"]}],"\n"]}],"\n"]}],"\n"]}],"\n",["$","p",null,{"className":"x:not-first:mt-[1.25em] x:leading-7","children":["$","strong",null,{"children":"Stage 4: Veröffentlichen auf NPM"}]}],"\n",["$","ul",null,{"className":"x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]","children":["\n",["$","li",null,{"className":"x:my-[.5em]","children":["Was passiert: Der Befehl ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"npm publish"}]," wird aus dem Root-",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"bundle"}],"-Verzeichnis heraus ausgeführt."]}],"\n",["$","li",null,{"className":"x:my-[.5em]","children":["Warum: Durch das Ausführen von ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"npm publish"}]," aus dem ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"bundle"}],"-Verzeichnis heraus werden nur die Dateien hochgeladen, die wir sorgfältig in Stage 3 zusammengestellt haben. Dadurch wird verhindert, dass versehentlich Source Code, Testdateien oder Entwicklungs-Konfigurationen veröffentlicht werden – das Ergebnis ist ein sauberes und minimales Paket für die Nutzer."]}],"\n"]}],"\n",["$","h3",null,{"id":"zusammenfassung-des-dateiflusses","className":"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl","children":["Zusammenfassung des Dateiflusses",["$","$L19",null,{"id":"zusammenfassung-des-dateiflusses"}]]}],"\n",["$","$L1b",null,{"chart":"graph TD\\n subgraph \"Source Files\"\\n A[\"packages/core/src/*.ts<br/>packages/cli/src/*.ts\"]\\n B[\"packages/cli/package.json\"]\\n C[\"README.md<br/>LICENSE<br/>packages/cli/src/utils/*.sb\"]\\n end\\n\\n subgraph \"Process\"\\n D(Build)\\n E(Transform)\\n F(Assemble)\\n G(Publish)\\n end\\n\\n subgraph \"Artifacts\"\\n H[\"Bundled JS\"]\\n I[\"Final package.json\"]\\n J[\"bundle/\"]\\n end\\n\\n subgraph \"Destination\"\\n K[\"NPM Registry\"]\\n end\\n\\n A --> D --> H\\n B --> E --> I\\n C --> F\\n H --> F\\n I --> F\\n F --> J\\n J --> G --> K"}],"\n",["$","p",null,{"className":"x:not-first:mt-[1.25em] x:leading-7","children":"Dieser Prozess stellt sicher, dass das letztendlich veröffentlichte Artefakt ein gezielt erstelltes, sauberes und effizientes Abbild des Projekts ist – und nicht einfach eine direkte Kopie des Entwicklungs-Workspace."}],"\n",["$","h2",null,{"id":"npm-workspaces","className":"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-10 x:border-b x:pb-1 x:text-3xl nextra-border","children":["NPM Workspaces",["$","$L19",null,{"id":"npm-workspaces"}]]}],"\n",["$","p",null,{"className":"x:not-first:mt-[1.25em] x:leading-7","children":["Dieses Projekt verwendet ",["$","a",null,{"href":"https://docs.npmjs.com/cli/v10/using-npm/workspaces","target":"_blank","rel":"noreferrer","className":"x:focus-visible:nextra-focus x:text-primary-600 x:underline x:hover:no-underline x:decoration-from-font x:[text-underline-position:from-font]","children":["NPM Workspaces",[" ",["$","svg",null,{"fill":"none","stroke":"currentColor","strokeLinecap":"round","strokeLinejoin":"round","strokeWidth":1.7,"viewBox":"0 0 24 24","height":"1em","className":"x:inline x:align-baseline x:shrink-0","children":[["$","path",null,{"d":"M7 17L17 7"}],["$","path",null,{"d":"M7 7h10v10"}]]}]]]}],", um die Pakete innerhalb dieses Monorepos zu verwalten. Dies vereinfacht die Entwicklung, da wir Abhängigkeiten verwalten und Skripte über mehrere Pakete hinweg vom Root des Projekts aus ausführen können."]}],"\n",["$","h3",null,{"id":"funktionsweise","className":"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl","children":["Funktionsweise",["$","$L19",null,{"id":"funktionsweise"}]]}],"\n",["$","p",null,{"className":"x:not-first:mt-[1.25em] x:leading-7","children":["Die root ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"package.json"}]," Datei definiert die Workspaces für dieses Projekt:"]}],"\n",["$","div",null,{"data-pagefind-ignore":"all","className":"nextra-code x:relative x:not-first:mt-[1.25em]","children":["$undefined",["$","pre",null,{"className":"x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose","tabIndex":"0","children":[["$","div",null,{"className":"x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2","children":[["$","$L1a",null,{"children":["$","svg",null,{"viewBox":"0 0 24 24","fill":"currentColor","height":"1em","children":["$","path",null,{"d":"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"}]}]}],false]}],["$","code",null,{"className":"nextra-code","dir":"ltr","children":[["$","span",null,{"children":["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":"{"}]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"},"children":" \"workspaces\""}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":": ["}],["$","span",null,{"style":{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},"children":"\"packages/*\""}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":"]"}]]}],"\n",["$","span",null,{"children":["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":"}"}]}]]}]]}]]}],"\n",["$","p",null,{"className":"x:not-first:mt-[1.25em] x:leading-7","children":["Dies teilt NPM mit, dass jeder Ordner innerhalb des ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"packages"}]," Verzeichnisses ein separates Paket ist, das als Teil des Workspaces verwaltet werden sollte."]}],"\n",["$","h3",null,{"id":"vorteile-von-workspaces","className":"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-8 x:text-2xl","children":["Vorteile von Workspaces",["$","$L19",null,{"id":"vorteile-von-workspaces"}]]}],"\n",["$","ul",null,{"className":"x:[:is(ol,ul)_&]:my-[.75em] x:not-first:mt-[1.25em] x:list-disc x:ms-[1.5em]","children":["\n",["$","li",null,{"className":"x:my-[.5em]","children":[["$","strong",null,{"children":"Vereinfachte Dependency-Verwaltung"}],": Wenn du ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"npm install"}]," vom Root des Projekts ausführst, werden alle Abhängigkeiten für alle Pakete im Workspace installiert und miteinander verknüpft. Das bedeutet, dass du nicht in jedem Paket-Verzeichnis ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"npm install"}]," ausführen musst."]}],"\n",["$","li",null,{"className":"x:my-[.5em]","children":[["$","strong",null,{"children":"Automatische Verlinkung"}],": Pakete innerhalb des Workspaces können voneinander abhängen. Beim Ausführen von ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"npm install"}]," erstellt NPM automatisch Symlinks zwischen den Paketen. Das heißt, wenn du Änderungen an einem Paket vornimmst, sind diese sofort in anderen Paketen verfügbar, die davon abhängen."]}],"\n",["$","li",null,{"className":"x:my-[.5em]","children":[["$","strong",null,{"children":"Vereinfachte Skriptausführung"}],": Du kannst Skripte in beliebigen Paketen vom Root des Projekts aus mit dem ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"--workspace"}],"-Flag ausführen. Um beispielsweise das ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"build"}],"-Skript im ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"cli"}],"-Paket auszuführen, kannst du ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"npm run build --workspace @qwen-code/qwen-code"}]," verwenden."]}],"\n"]}]]}]]}]]}]}]
|
||
9:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"Package Overview | "}],["$","meta","3",{"name":"description","content":"x"}],["$","meta","4",{"name":"msapplication-TileColor","content":"#fff"}],["$","meta","5",{"name":"apple-mobile-web-app-capable","content":"yes"}],["$","meta","6",{"name":"apple-mobile-web-app-title","content":"Qwen Code"}],["$","meta","7",{"name":"apple-mobile-web-app-status-bar-style","content":"default"}],["$","meta","8",{"property":"og:title","content":"Package Overview | "}],["$","meta","9",{"property":"og:description","content":"x"}],["$","meta","10",{"property":"og:image","content":"https://assets.vercel.com/image/upload/v1572282926/swr/twitter-card.jpg"}],["$","meta","11",{"name":"twitter:card","content":"summary"}],["$","meta","12",{"name":"twitter:site","content":"@qwenLLM"}],["$","meta","13",{"name":"twitter:title","content":"Package Overview | "}],["$","meta","14",{"name":"twitter:description","content":"x"}],["$","meta","15",{"name":"twitter:image","content":"https://assets.vercel.com/image/upload/v1572282926/swr/twitter-card.jpg"}]]
|
||
1:null
|