@@ -13,7 +13,10 @@ module.exports = (api, projectOptions) => {
1313
1414function chain ( api , projectOptions ) {
1515 return config => {
16- const options = createOptions ( api , projectOptions ) ;
16+ const options = createPluginOptions ( api , projectOptions ) ;
17+ if ( options . onlyProduction && process . env . NODE_ENV !== "production" ) {
18+ return ;
19+ }
1720 const renderer = createRenderer ( api , projectOptions ) ;
1821 const paths = resolvePaths ( api , projectOptions . outputDir , projectOptions . assetsDir ) ;
1922 const prerenderOptions = {
@@ -31,16 +34,18 @@ function chain(api, projectOptions) {
3134 }
3235 } ;
3336 config . plugin ( "pre-render" ) . use ( PrerenderSPAPlugin , [ prerenderOptions ] ) ;
34- config . plugin ( "html" ) . tap ( args => {
35- args [ 0 ] . template = api . resolve ( "public/index.html" ) ;
36- args [ 0 ] . filename = "app.html" ;
37- return args ;
38- } ) ;
37+ if ( process . env . NODE_ENV === "production" ) {
38+ config . plugin ( "html" ) . tap ( args => {
39+ args [ 0 ] . template = api . resolve ( "public/index.html" ) ;
40+ args [ 0 ] . filename = "app.html" ;
41+ return args ;
42+ } ) ;
43+ }
3944 } ;
4045}
4146
4247function createRenderer ( api , projectOptions ) {
43- const rendererConfig = createConfig ( api , projectOptions ) ;
48+ const rendererConfig = createRendererConfig ( api , projectOptions ) ;
4449 const renderer = new Renderer ( rendererConfig ) ;
4550 renderer . preServer = Prerenderer => {
4651 if ( projectOptions . baseUrl ) {
@@ -70,11 +75,8 @@ function createRenderer(api, projectOptions) {
7075 return renderer ;
7176}
7277
73- function createConfig ( api , projectOptions ) {
74- let options = createOptions ( api , projectOptions ) ;
75- if ( options . onlyProduction && process . env . NODE_ENV !== "production" ) {
76- return ;
77- }
78+ function createRendererConfig ( api , projectOptions ) {
79+ let options = createPluginOptions ( api , projectOptions ) ;
7880 let rendererConfig = {
7981 headless : options . headless ,
8082 maxConcurrentRoutes : options . parallel ? 4 : 1
@@ -88,29 +90,29 @@ function createConfig(api, projectOptions) {
8890 return rendererConfig ;
8991}
9092
91- function createOptions ( api , projectOptions ) {
93+ function createPluginOptions ( api , projectOptions ) {
9294 let options ;
9395 let oldConfigPath = api . resolve ( ".prerender-spa.json" ) ;
9496 try {
9597 options = pickle ( projectOptions , CONFIG_OBJ_PATH ) ;
9698 if ( existsSync ( oldConfigPath ) ) {
9799 Object . assign ( options , JSON . parse ( readFileSync ( oldConfigPath ) . toString ( "utf-8" ) ) ) ;
98100 }
99- }
100- catch {
101+ } catch {
101102 if ( existsSync ( oldConfigPath ) ) {
102103 options = JSON . parse ( readFileSync ( oldConfigPath ) . toString ( "utf-8" ) ) ;
103104 }
104105 }
105- return options ;
106+ // return options; // TODO: Fix #16 permanently
107+ return Object . assign ( options , { onlyProduction : true } ) ; // Force disable on development build, workaround for #16
106108}
107109
108110function resolvePaths ( api , baseUrl , assetsDir ) {
109111 return {
110112 outputDir : api . resolve ( baseUrl ) ,
111113 staticDir : api . resolve ( baseUrl ) ,
112114 assetsDir : api . resolve ( path . join ( baseUrl , assetsDir ) ) ,
113- indexPath : api . resolve ( path . join ( baseUrl , " app.html") )
115+ indexPath : api . resolve ( path . join ( baseUrl , process . env . NODE_ENV === "production" ? " app.html" : "index .html") )
114116 } ;
115117}
116118
0 commit comments