Hi!
My solution to the problem:
- Copy the source code to the working directory
cp node_modules/@strapi/admin/admin/src ./src/admin/ui
- Rename the file
./src/admin/webpack.config.example.js
to./src/admin/webpack.config.js
- We connect and configure the webpack.NormalModuleReplacementPlugin plugin in the
./src/admin/webpack.config.js
file
"use strict";
const path = require("path");
const strapiCacheSrcPath = path.resolve(__dirname, "../../.cache/admin/src");
/* eslint-disable no-unused-vars */
module.exports = (config, webpack) => {
// Note: we provide webpack above so you should not `require` it
// Perform customizations to webpack config
// Important: return the modified config
config.plugins.push(
new webpack.NormalModuleReplacementPlugin(
/admin\/src\/(.*).js/,
(resource) => {
if (resource.createData.resource){
const replacedFilePath = resource.createData.resource.replace(strapiCacheSrcPath,path.resolve(__dirname,'ui'));
if (replacedFilePath.endsWith('.js')) {
resource.createData.resource = replacedFilePath;
}
}
}
)
);
return config;
};
- Fixing plugin paths
./src/admin/ui/plugins.js
// After:
// import contentTypeBuilder from '../../../content-type-builder/admin/src';
// import email from '../../../email/admin/src';
// import upload from '../../../upload/admin/src';
// import i18N from '../../../../plugins/i18n/admin/src';
// import usersPermissions from '../../../../plugins/users-permissions/admin/src';
// Before:
import contentTypeBuilder from '@strapi/plugin-content-type-builder/admin/src';
import email from '@strapi/plugin-email/admin/src';
import upload from '@strapi/plugin-upload/admin/src';
import i18N from '@strapi/plugin-i18n/admin/src';
import usersPermissions from '@strapi/plugin-users-permissions/admin/src';
Ready! Now you can modify admin panel .js files in ./src/admin/ui
directory! If desired, you can reconfigure the plugin for other file formats.
The solution is not 100% tested, there may be problems.