Overview
Handle Vue CLI and Webpack 4 constraints that differ materially from modern Vue 2/Vite setup.
When to Use
Use when Vue 2 runs on Vue CLI or Webpack 4 and package export maps or Vite worker imports are unavailable.
Workflow
Inspect the existing package manager, installed package version and project conventions. A requested scoped integration already authorizes routine source/dependency edits; seek approval only for a material scope expansion or unresolved beta/alpha adoption decision.
- Confirm Vue 2 plus Vue CLI/Webpack 4.
- Install
markstream-vue2and only requested peers. - Import
markstream-vue2/dist/index.css, because legacy tooling may not understand the CSS export map. - Avoid
?workerimports. Use Markstream CDN worker helpers for KaTeX or Mermaid only when needed. - Prefer
stream-markdowncode blocks over fragile Monaco worker wiring. - Keep
contentwith smooth streaming for chat; setfinaland disable pacing/cursor for completed history. - Keep HTML safe and Mermaid strict; validate the actual legacy build.
Example
<script>
import MarkdownRender from 'markstream-vue2'
// Legacy Webpack may not resolve the package CSS export map.
import 'markstream-vue2/dist/index.css'
export default {
components: { MarkdownRender },
data: () => ({ content: '# Answer', done: false }),
}
</script>
<template>
<MarkdownRender
:content="content"
:final="done"
:fade="false"
/>
</template>
Limitations
- CDN workers require network access and compatible content-security policy.
- Monaco-style worker setups are intentionally not covered.
- Vue 2.6 may also require
@vue/composition-api.
Security & Safety Notes
Do not introduce CDN workers without reviewing CSP, network policy, and dependency trust. Preserve safe rendering defaults.
Verify props, export paths and peer ranges against the installed package, not a mutable upstream main. Test partial and completed streams, malformed/untrusted Markdown, links and image URLs, cancellation and reduced motion. Safe HTML and strict diagrams reduce exposure but do not alone enforce URL/network privacy or application component permissions.
Vue 2 is end-of-life; preserve a requested legacy integration and document its maintenance/support decision rather than silently upgrading the whole application. Prefer reviewed locally bundled workers over mutable CDN code where feasible.