Bundling

import A from './a'
export default function App(){
return <A />
}
import B from './b'
export default function A(){
return <B />
}
function App(){
return <A />
}
function A(){
return <B />
}
function B(){
return <Suspense>
{show && <C>}
</Suspense
}
Bundle
index.js
a.js
const c = lazy(import('./c'))
export default function B(){
return <Suspense>
{show && <C>}
</Suspense
}
b.js
function C(){
return <div>C</div>
}
main.js
chunk-1.js
function App(){
return <A />
}
function App(){
return <A />
}
function A(){
return <B />
}
{
"name": "@fs/zion-user",
"sideEffects": false
}
package.json
export {default as A} from './a'
export {default as B} from './b'
import {useState, lazy} from 'react'
const B = lazy(()=> import('./b'))
export default function A(){
const [show, setShow] = useState(false)
if(show) return <B />
return (
<button onClick={()=>setShow(true)}>
Show it
</button>
)
}
import {useState, lazy} from 'react'
const B = lazy(()=> import('./b'))
export default function A(){
const [show, setShow] = useState(false)
if(show) return <B />
return (
<button onClick={()=>setShow(true)}>
Show it
</button>
)
}
function B(){
return <div>B</div>
}
index.js
a.js
export default function B(){
return <div>B</div>
}
b.js
function B(){
return <div>B</div>
}
main.js
chunk-1.js
import {useState, lazy} from 'react'
const B = lazy(()=> import('./b'))
export default function A(){
const [show, setShow] = useState(false)
if(show) return <B />
return (
<button onClick={()=>setShow(true)}>
Show it
</button>
)
}
import {A} from 'pkg'
// Just import and render A
<A>
app.js
deck
By Tyler Graf
deck
- 373