11const path = require ( 'path' ) ;
2+ const dotenv = require ( "dotenv" ) ;
23const webpack = require ( 'webpack' ) ;
34const BrowserSyncPlugin = require ( 'browser-sync-webpack-plugin' ) ;
45const VueLoaderPlugin = require ( "vue-loader/lib/plugin" ) ;
@@ -7,7 +8,12 @@ const CleanPlugin = require("clean-webpack-plugin");
78const WorkboxPlugin = require ( "workbox-webpack-plugin" ) ;
89
910const isProduction = process . env . NODE_ENV === "production" ;
10- console . log ( "Running in production mode?" , isProduction ) ;
11+
12+ dotenv . config ( { path : ".env.local" } ) ;
13+ dotenv . config ( { path : isProduction ? ".env.prod" : ".env.dev" } ) ;
14+ dotenv . config ( { path : ".env" } ) ;
15+
16+ console . log ( "Enviroment variables are:" , process . env ) ;
1117
1218// ===============================================
1319// MISC SETTINGS
@@ -23,26 +29,34 @@ plugins.push(new VueLoaderPlugin());
2329plugins . push ( new webpack . DefinePlugin ( {
2430 CANVAS_RENDERER : JSON . stringify ( true ) ,
2531 WEBGL_RENDERER : JSON . stringify ( true ) ,
26- 'process.env.NODE_ENV' : JSON . stringify ( process . env . NODE_ENV )
32+ 'process.env.NODE_ENV' : JSON . stringify ( process . env . NODE_ENV ) ,
33+ 'process.env.SERVICE_WORKER' : JSON . stringify ( process . env . SERVICE_WORKER ) ,
34+ 'process.env.BROWSERSYNC' : JSON . stringify ( process . env . BROWSERSYNC )
2735} ) ) ;
2836plugins . push ( new CopyPlugin ( [ "index.html" , "manifest.json" , { from : "assets" , to : "assets" } ] ) ) ;
29- if ( ! isProduction ) {
37+ if ( process . env . BROWSERSYNC === "true" ) {
3038 plugins . push ( new BrowserSyncPlugin ( {
3139 host : process . env . IP || 'localhost' ,
3240 port : process . env . PORT || 3000 ,
3341 server : {
3442 baseDir : [ './dist' ]
35- }
43+ } ,
44+ https : {
45+ key : "ssl/key.pem" ,
46+ cert : "ssl/cert.pem"
47+ } ,
48+ open : false
3649 } ) ) ;
37- }
38- if ( isProduction ) {
50+ } else {
3951 plugins . push ( new CleanPlugin ( ) ) ;
52+ }
53+ if ( process . env . SERVICE_WORKER === "true" ) {
4054 plugins . push ( new WorkboxPlugin . GenerateSW ( {
4155 swDest : "serviceworker.js" ,
4256 clientsClaim : true ,
4357 importWorkboxFrom : "local" ,
4458 skipWaiting : true
45- } ) )
59+ } ) ) ;
4660}
4761
4862module . exports = {
0 commit comments