@@ -100,6 +100,7 @@ type PromptResult = {
100100features ?:( typeof FEATURE_OPTIONS ) [ number ] [ 'value' ] [ ]
101101e2eFramework ?:'cypress' | 'nightwatch' | 'playwright'
102102experimentFeatures ?:( typeof EXPERIMENTAL_FEATURE_OPTIONS ) [ number ] [ 'value' ] [ ]
103+ needsBareboneTemplates ? :boolean
103104}
104105
105106function isValidPackageName ( projectName ) {
@@ -251,6 +252,9 @@ async function init() {
251252features :[ ] ,
252253e2eFramework :undefined ,
253254experimentFeatures :[ ] ,
255+
256+ // TODO: default to true sometime in the future
257+ needsBareboneTemplates :false ,
254258}
255259
256260intro (
@@ -352,7 +356,19 @@ async function init() {
352356)
353357}
354358
355- const { features , experimentFeatures } = result
359+ if ( argv . bare ) {
360+ result . needsBareboneTemplates = true
361+ } else if ( ! isFeatureFlagsUsed ) {
362+ result . needsBareboneTemplates = await unwrapPrompt (
363+ confirm ( {
364+ message :language . needsBareboneTemplates . message ,
365+ // TODO: default to true sometime in the future
366+ initialValue :false ,
367+ } ) ,
368+ )
369+ }
370+
371+ const { features , experimentFeatures , needsBareboneTemplates } = result
356372
357373const needsTypeScript = argv . ts || argv . typescript || features . includes ( 'typescript' )
358374const needsJsx = argv . jsx || features . includes ( 'jsx' )
@@ -562,7 +578,7 @@ async function init() {
562578} ,
563579)
564580
565- if ( argv . bare ) {
581+ if ( needsBareboneTemplates ) {
566582trimBoilerplate ( root )
567583render ( 'bare/base' )
568584// TODO: refactor the `render` utility to avoid this kind of manual mapping?
@@ -629,7 +645,7 @@ async function init() {
629645)
630646}
631647
632- if ( argv . bare ) {
648+ if ( needsBareboneTemplates ) {
633649removeCSSImport ( root , needsTypeScript , needsCypressCT )
634650if ( needsRouter ) {
635651emptyRouterConfig ( root , needsTypeScript )