diff --git a/package.json b/package.json index d08b3cfdaeb..cd73d808026 100644 --- a/package.json +++ b/package.json @@ -6,9 +6,10 @@ "version": "10.3.0-pre", "repository": "github:grafana/grafana", "scripts": { - "build": "yarn i18n:compile && NODE_ENV=production webpack --progress --config scripts/webpack/webpack.prod.js", + "prebuild": "yarn i18n:compile && yarn plugin:build", + "build": "yarn prebuild & NODE_ENV=production webpack --progress --config scripts/webpack/webpack.prod.js", "build:nominify": "yarn run build --env noMinify=1", - "dev": "yarn i18n:compile && NODE_ENV=dev webpack --progress --color --config scripts/webpack/webpack.dev.js", + "dev": "yarn prebuild & NODE_ENV=dev webpack --progress --color --config scripts/webpack/webpack.dev.js", "e2e": "./e2e/start-and-run-suite", "e2e:debug": "./e2e/start-and-run-suite debug", "e2e:dev": "./e2e/start-and-run-suite dev", @@ -55,9 +56,9 @@ "betterer:stats": "ts-node --transpile-only --project ./scripts/cli/tsconfig.json ./scripts/cli/reportBettererStats.ts", "betterer:issues": "ts-node --transpile-only --project ./scripts/cli/tsconfig.json ./scripts/cli/generateBettererIssues.ts", "generate-icons-bundle-cache-file": "node ./scripts/generate-icon-bundle.js", - "plugin:build": "lerna run build --ignore=\"@grafana/*\"", - "plugin:build:commit": "lerna run build:commit --ignore=\"@grafana/*\"", - "plugin:build:dev": "lerna run dev --ignore=\"@grafana/*\"" + "plugin:build": "lerna run build --ignore=\"@grafana/*\" --ignore=\"@grafana-plugins/input-datasource\"", + "plugin:build:commit": "lerna run build:commit --ignore=\"@grafana/*\" --ignore=\"@grafana-plugins/input-datasource\"", + "plugin:build:dev": "lerna run dev --ignore=\"@grafana/*\" --ignore=\"@grafana-plugins/input-datasource\"" }, "grafana": { "whatsNewUrl": "https://grafana.com/docs/grafana/next/whatsnew/whats-new-in-v10-1/", diff --git a/pkg/plugins/manager/loader/assetpath/assetpath.go b/pkg/plugins/manager/loader/assetpath/assetpath.go index 0306c823f4f..90ec28f87d9 100644 --- a/pkg/plugins/manager/loader/assetpath/assetpath.go +++ b/pkg/plugins/manager/loader/assetpath/assetpath.go @@ -10,6 +10,7 @@ import ( "github.com/grafana/grafana/pkg/plugins" "github.com/grafana/grafana/pkg/plugins/config" "github.com/grafana/grafana/pkg/plugins/pluginscdn" + "github.com/grafana/grafana/pkg/services/featuremgmt" ) // Service provides methods for constructing asset paths for plugins. @@ -57,8 +58,14 @@ func (s *Service) Base(n PluginInfo) (string, error) { // Module returns the module.js path for the specified plugin. func (s *Service) Module(n PluginInfo) (string, error) { if n.class == plugins.ClassCore { - baseDir := getBaseDir(n.dir) - return path.Join("core:plugin", baseDir), nil + if s.cfg.Features != nil && + s.cfg.Features.IsEnabled(featuremgmt.FlagExternalCorePlugins) && + filepath.Base(n.dir) == "dist" { + // The core plugin has been built externally, use the module from the dist folder + } else { + baseDir := getBaseDir(n.dir) + return path.Join("core:plugin", baseDir), nil + } } if s.cdn.PluginSupported(n.pluginJSON.ID) { return s.cdn.AssetURL(n.pluginJSON.ID, n.pluginJSON.Info.Version, "module.js")