From e3a68d4106870563ac108624cf08f5758e332c85 Mon Sep 17 00:00:00 2001 From: soupette Date: Mon, 31 May 2021 15:57:47 +0200 Subject: [PATCH] Load internal plugins Signed-off-by: soupette --- .../core/admin/admin/src/pages/Admin/index.js | 39 ++++++++++++++++--- .../core/admin/admin/src/pages/App/index.js | 5 ++- packages/core/admin/webpack.config.js | 4 +- .../core/content-manager/admin/src/index.js | 2 - .../content-type-builder/admin/src/index.js | 2 - packages/core/upload/admin/src/index.js | 3 -- 6 files changed, 40 insertions(+), 15 deletions(-) diff --git a/packages/core/admin/admin/src/pages/Admin/index.js b/packages/core/admin/admin/src/pages/Admin/index.js index 668514fff3..cae52b0a0a 100644 --- a/packages/core/admin/admin/src/pages/Admin/index.js +++ b/packages/core/admin/admin/src/pages/Admin/index.js @@ -23,13 +23,37 @@ import Logout from './Logout'; import Wrapper from './Wrapper'; import Content from './Content'; -const HomePage = lazy(() => import('../HomePage')); -const InstalledPluginsPage = lazy(() => import('../InstalledPluginsPage')); -const MarketplacePage = lazy(() => import('../MarketplacePage')); +const HomePage = lazy(() => import(/* webpackChunkName: "Admin_homePage" */ '../HomePage')); +const InstalledPluginsPage = lazy(() => + import(/* webpackChunkName: "Admin_pluginsPage" */ '../InstalledPluginsPage') +); +const MarketplacePage = lazy(() => + import(/* webpackChunkName: "Admin_marketplace" */ '../MarketplacePage') +); const NotFoundPage = lazy(() => import('../NotFoundPage')); -const PluginDispatcher = lazy(() => import('../PluginDispatcher')); -const ProfilePage = lazy(() => import('../ProfilePage')); -const SettingsPage = lazy(() => import('../SettingsPage')); +const PluginDispatcher = lazy(() => + import(/* webpackChunkName: "Admin_pluginDispatcher" */ '../PluginDispatcher') +); +const ProfilePage = lazy(() => + import(/* webpackChunkName: "Admin_profilePage" */ '../ProfilePage') +); +const SettingsPage = lazy(() => + import(/* webpackChunkName: "Admin_settingsPage" */ '../SettingsPage') +); +// These are internal plugins +const CM = lazy(() => + import( + /* webpackChunkName: "content-manager" */ '@strapi/plugin-content-manager/admin/src/pages/Main' + ) +); +const CTB = lazy(() => + import( + /* webpackChunkName: "content-type-builder" */ '@strapi/plugin-content-type-builder/admin/src/pages/App' + ) +); +const Upload = lazy(() => + import(/* webpackChunkName: "upload" */ '@strapi/plugin-upload/admin/src/pages/App') +); // Simple hook easier for testing const useTrackUsage = () => { @@ -68,6 +92,9 @@ const Admin = () => { + + + diff --git a/packages/core/admin/admin/src/pages/App/index.js b/packages/core/admin/admin/src/pages/App/index.js index 5bc3d6c2be..047b24e0b7 100644 --- a/packages/core/admin/admin/src/pages/App/index.js +++ b/packages/core/admin/admin/src/pages/App/index.js @@ -21,7 +21,10 @@ import { Content, Wrapper } from './components'; import routes from './utils/routes'; import { makeUniqueRoutes, createRoute } from '../SettingsPage/utils'; -const AuthenticatedApp = lazy(() => import('../../components/AuthenticatedApp')); +const AuthenticatedApp = lazy(() => + import(/* webpackChunkName: "Admin-authenticatedApp" */ '../../components/AuthenticatedApp') +); + function App() { const toggleNotification = useNotification(); const [{ isLoading, hasAdmin, uuid }, setState] = useState({ isLoading: true, hasAdmin: false }); diff --git a/packages/core/admin/webpack.config.js b/packages/core/admin/webpack.config.js index 9c400bc234..1d268f8c3f 100644 --- a/packages/core/admin/webpack.config.js +++ b/packages/core/admin/webpack.config.js @@ -91,7 +91,8 @@ module.exports = ({ rules: [ { test: /\.m?js$/, - exclude: /node_modules/, + // TODO remove when plugins are built separately + exclude: /node_modules\/(?!(@strapi\/plugin-content-manager|@strapi\/plugin-content-type-builder|@strapi\/plugin-upload)\/).*/, use: { loader: require.resolve('babel-loader'), options: { @@ -119,6 +120,7 @@ module.exports = ({ }, }, }, + { test: /\.css$/i, use: ['style-loader', 'css-loader'], diff --git a/packages/core/content-manager/admin/src/index.js b/packages/core/content-manager/admin/src/index.js index 4186661746..c8de549c2a 100644 --- a/packages/core/content-manager/admin/src/index.js +++ b/packages/core/content-manager/admin/src/index.js @@ -8,7 +8,6 @@ import pluginPkg from '../../package.json'; import pluginId from './pluginId'; import pluginLogo from './assets/images/logo.svg'; -import App from './pages/Main'; import reducers from './reducers'; import trads from './translations'; @@ -30,7 +29,6 @@ export default { }, isReady: true, isRequired: pluginPkg.strapi.required || false, - mainComponent: App, name, pluginLogo, trads, diff --git a/packages/core/content-type-builder/admin/src/index.js b/packages/core/content-type-builder/admin/src/index.js index b629dc9c60..a8d309c7ec 100644 --- a/packages/core/content-type-builder/admin/src/index.js +++ b/packages/core/content-type-builder/admin/src/index.js @@ -7,7 +7,6 @@ import pluginPkg from '../../package.json'; import pluginLogo from './assets/images/logo.svg'; -import App from './pages/App'; import trads from './translations'; import pluginPermissions from './permissions'; import pluginId from './pluginId'; @@ -27,7 +26,6 @@ export default { id: pluginId, isRequired: pluginPkg.strapi.required || false, isReady: true, - mainComponent: App, name, pluginLogo, trads, diff --git a/packages/core/upload/admin/src/index.js b/packages/core/upload/admin/src/index.js index 61ff4c6ec3..3451d69995 100644 --- a/packages/core/upload/admin/src/index.js +++ b/packages/core/upload/admin/src/index.js @@ -12,7 +12,6 @@ import pluginPermissions from './permissions'; import Initializer from './components/Initializer'; import InputMedia from './components/InputMedia'; import InputModalStepper from './components/InputModalStepper'; -import App from './pages/App'; import SettingsPage from './pages/SettingsPage'; import reducers from './reducers'; import trads from './translations'; @@ -40,8 +39,6 @@ export default { isReady: false, isRequired: pluginPkg.strapi.required || false, - - mainComponent: App, name, pluginLogo,