FIX: assets:precompile:js_processor task issue (#23219)

* Fix the reference
* Use mutex in non-prod only (…and don't try to build the processor in runtime in prod)
This commit is contained in:
Jarek Radosz 2023-08-24 13:19:57 +02:00 committed by GitHub
parent 4dfe25d062
commit 4fdeb6281e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 18 deletions

View File

@ -110,22 +110,17 @@ class DiscourseJsProcessor
end
def self.generate_js_processor
@processor_mutex.synchronize do
if Rails.env.development? || Rails.env.test? ||
!File.exist?("#{Rails.root}/#{JS_PROCESSOR_PATH}")
Discourse::Utils.execute_command(
"yarn",
"--silent",
"esbuild",
"--log-level=warning",
"--bundle",
"--external:fs",
"--define:process='{\"env\":{}}'",
"app/assets/javascripts/js-processor.js",
"--outfile=#{JS_PROCESSOR_PATH}",
)
end
end
Discourse::Utils.execute_command(
"yarn",
"--silent",
"esbuild",
"--log-level=warning",
"--bundle",
"--external:fs",
"--define:process='{\"env\":{}}'",
"app/assets/javascripts/js-processor.js",
"--outfile=#{JS_PROCESSOR_PATH}",
)
end
def self.create_new_context
@ -138,7 +133,10 @@ class DiscourseJsProcessor
ctx.attach("rails.logger.error", proc { |err| Rails.logger.error(err.to_s) })
# Theme template AST transformation plugins
generate_js_processor
if Rails.env.development? || Rails.env.test?
@processor_mutex.synchronize { generate_js_processor }
end
ctx.eval(File.read(JS_PROCESSOR_PATH), filename: "js-processor.js")
ctx

View File

@ -301,7 +301,7 @@ task "assets:precompile:compress_js" do
end
task "assets:precompile:js_processor": "environment" do
DiscourseJsProcessor.generate_js_processor
DiscourseJsProcessor::Transpiler.generate_js_processor
end
task "assets:precompile": %w[