diff --git a/app/assets/javascripts/bootstrap-json/index.js b/app/assets/javascripts/bootstrap-json/index.js
index 0a091b8407d..fae9051fd1d 100644
--- a/app/assets/javascripts/bootstrap-json/index.js
+++ b/app/assets/javascripts/bootstrap-json/index.js
@@ -7,7 +7,7 @@ const path = require("path");
const fs = require("fs");
const fsPromises = fs.promises;
const { JSDOM } = require("jsdom");
-const { shouldLoadPluginTestJs } = require("discourse-plugins");
+const { shouldLoadPlugins } = require("discourse-plugins");
const { Buffer } = require("node:buffer");
const { cwd, env } = require("node:process");
@@ -390,7 +390,7 @@ module.exports = {
},
contentFor(type, config) {
- if (shouldLoadPluginTestJs() && type === "test-plugin-js") {
+ if (shouldLoadPlugins() && type === "test-plugin-js") {
const scripts = [];
const pluginInfos = this.app.project
@@ -431,7 +431,7 @@ module.exports = {
``
)
.join("\n");
- } else if (shouldLoadPluginTestJs() && type === "test-plugin-tests-js") {
+ } else if (shouldLoadPlugins() && type === "test-plugin-tests-js") {
return this.app.project
.findAddonByName("discourse-plugins")
.pluginInfos()
@@ -441,7 +441,7 @@ module.exports = {
``
)
.join("\n");
- } else if (shouldLoadPluginTestJs() && type === "test-plugin-css") {
+ } else if (shouldLoadPlugins() && type === "test-plugin-css") {
return ``;
}
},
diff --git a/app/assets/javascripts/discourse-plugins/index.js b/app/assets/javascripts/discourse-plugins/index.js
index b4b25cfcc34..dbf4f56c6be 100644
--- a/app/assets/javascripts/discourse-plugins/index.js
+++ b/app/assets/javascripts/discourse-plugins/index.js
@@ -135,6 +135,9 @@ module.exports = {
},
generatePluginsTree() {
+ if (!this.shouldLoadPlugins()) {
+ return mergeTrees([]);
+ }
const appTree = this._generatePluginAppTree();
const testTree = this._generatePluginTestTree();
const adminTree = this._generatePluginAdminTree();
@@ -227,7 +230,16 @@ module.exports = {
return;
},
- shouldLoadPluginTestJs() {
- return EmberApp.env() === "development" || process.env.LOAD_PLUGINS === "1";
+ // Matches logic from GlobalSetting.load_plugins? in the ruby app
+ shouldLoadPlugins() {
+ if (process.env.LOAD_PLUGINS === "1") {
+ return true;
+ } else if (process.env.LOAD_PLUGINS === "0") {
+ return false;
+ } else if (EmberApp.env() === "test") {
+ return false;
+ } else {
+ return true;
+ }
},
};
diff --git a/app/assets/javascripts/discourse/lib/site-settings-plugin.js b/app/assets/javascripts/discourse/lib/site-settings-plugin.js
index 1ebdfbcb2ab..43cf95455c0 100644
--- a/app/assets/javascripts/discourse/lib/site-settings-plugin.js
+++ b/app/assets/javascripts/discourse/lib/site-settings-plugin.js
@@ -5,7 +5,7 @@ const concat = require("broccoli-concat");
const mergeTrees = require("broccoli-merge-trees");
const deepmerge = require("deepmerge");
const glob = require("glob");
-const { shouldLoadPluginTestJs } = require("discourse-plugins");
+const { shouldLoadPlugins } = require("discourse-plugins");
let built = false;
@@ -72,7 +72,7 @@ module.exports.parsePluginClientSettings = function (
) {
let settings = [discourseRoot + "/config"];
- if (shouldLoadPluginTestJs()) {
+ if (shouldLoadPlugins()) {
const pluginInfos = app.project
.findAddonByName("discourse-plugins")
.pluginInfos();
diff --git a/app/assets/javascripts/discourse/lib/translation-plugin.js b/app/assets/javascripts/discourse/lib/translation-plugin.js
index 29fd1299590..0adbf39613c 100644
--- a/app/assets/javascripts/discourse/lib/translation-plugin.js
+++ b/app/assets/javascripts/discourse/lib/translation-plugin.js
@@ -6,7 +6,7 @@ const mergeTrees = require("broccoli-merge-trees");
const MessageFormat = require("messageformat");
const deepmerge = require("deepmerge");
const glob = require("glob");
-const { shouldLoadPluginTestJs } = require("discourse-plugins");
+const { shouldLoadPlugins } = require("discourse-plugins");
let built = false;
@@ -96,7 +96,7 @@ module.exports = function translatePlugin(...params) {
module.exports.createI18nTree = function (discourseRoot, vendorJs) {
let translations = [discourseRoot + "/config/locales"];
- if (shouldLoadPluginTestJs()) {
+ if (shouldLoadPlugins()) {
translations = translations.concat(
glob
.sync(discourseRoot + "/plugins/*/config/locales/client.en.yml")
diff --git a/app/assets/javascripts/discourse/testem.js b/app/assets/javascripts/discourse/testem.js
index c37420a0189..bf83225482d 100644
--- a/app/assets/javascripts/discourse/testem.js
+++ b/app/assets/javascripts/discourse/testem.js
@@ -1,5 +1,5 @@
const TapReporter = require("testem/lib/reporters/tap_reporter");
-const { shouldLoadPluginTestJs } = require("discourse-plugins");
+const { shouldLoadPlugins } = require("discourse-plugins");
const fs = require("fs");
class Reporter {
@@ -139,7 +139,7 @@ if (process.argv.includes("-t")) {
});
},
];
-} else if (shouldLoadPluginTestJs()) {
+} else if (shouldLoadPlugins()) {
// Running with ember cli, but we want to pass through plugin request to Rails
module.exports.proxies = {
"/assets/plugins/*_extra.js": {