From 0f7ff96b65d12716ac05af94f6334f165d07e03a Mon Sep 17 00:00:00 2001 From: Rick Carlino Date: Tue, 29 Jan 2019 15:54:00 -0600 Subject: [PATCH] :crossed_fingers: Minor issues with React module. --- app/controllers/dashboard_controller.rb | 24 +++++++++++++++++------- docker-compose.yml | 2 +- lib/tasks/api.rake | 13 +++++++++---- 3 files changed, 27 insertions(+), 12 deletions(-) diff --git a/app/controllers/dashboard_controller.rb b/app/controllers/dashboard_controller.rb index e5ef7de6a..c492bc716 100644 --- a/app/controllers/dashboard_controller.rb +++ b/app/controllers/dashboard_controller.rb @@ -1,20 +1,30 @@ class DashboardController < ApplicationController before_action :set_global_config - SOURCE = "../../webpack" - DESTINATION = "../public/webpack" - CSS_ASSETS = { + OUTPUT_PATH = "/dist" + + CSS_INPUTS = { front_page: "/css/laptop_splash.scss", default: "/css/_index.scss", }.with_indifferent_access - JS_ASSETS = { + JS_INPUTS = { main_app: "/entry.tsx", front_page: "/front_page/index.tsx", password_reset: "/password_reset/index.tsx", tos_update: "/tos_update/index.tsx", }.with_indifferent_access + CSS_OUTPUTS = CSS_INPUTS.reduce({}) do |acc, (key, value)| + acc[key] = OUTPUT_PATH + value.gsub(/\.scss$/, ".css") + acc + end + + JS_OUTPUTS = JS_INPUTS.reduce({}) do |acc, (key, value)| + acc[key] = OUTPUT_PATH + value.gsub(/\.tsx?$/, ".js") + acc + end + [:main_app, :front_page, :verify, :password_reset, :tos_update].map do |actn| define_method(actn) do begin @@ -62,17 +72,17 @@ class DashboardController < ApplicationController end private - def load_css_assets @css_assets ||= [action_name, :default].reduce([]) do |list, action| - asset = CSS_ASSETS[action] + asset = CSS_OUTPUTS[action] # Not every endpoint has custom CSS. list.push(asset) if asset list end end def load_js_assets - @js_assets ||= [ JS_ASSETS.fetch(action_name) ] + # Every DashboardController has a JS SBundle. + @js_assets ||= [ JS_OUTPUTS.fetch(action_name) ] end def set_global_config diff --git a/docker-compose.yml b/docker-compose.yml index 64bd7e7e0..a85b4cbc3 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -54,7 +54,7 @@ services: webpack: # ==================== <<: *base_config <<: *rails - depends_on: ["db","mqtt"] + depends_on: ["db","mqtt", "web"] command: bundle exec rake api:serve_assets ports: ["3808:3808"] # Webpack Dev Server delayed_job: # ==================== diff --git a/lib/tasks/api.rake b/lib/tasks/api.rake index 99f577a89..535772b0d 100644 --- a/lib/tasks/api.rake +++ b/lib/tasks/api.rake @@ -52,18 +52,23 @@ namespace :api do desc "Serve javascript assets (via Parcel bundler)" task serve_assets: :environment do - css = DashboardController::CSS_ASSETS.values - js = DashboardController::JS_ASSETS.values + css = DashboardController::CSS_INPUTS.values + js = DashboardController::JS_INPUTS.values assets = (js + css) .sort .uniq .map { |x| "webpack" + x } .join(" ") - cli = [ + + cli = [ "node_modules/parcel-bundler/bin/cli.js", - "watch", + "build", assets, "--out-dir public/dist", + "--public-url /dist", + # "--hmr-hostname #{ENV.fetch("API_HOST")}", + # "--hmr-port 3808", + "--bundle-node-modules", "--log-level 5", ].join(" ") # /dist/front_page/index.jd