first commit

This commit is contained in:
2025-08-02 16:30:27 +02:00
commit 23646bfcee
14851 changed files with 1750626 additions and 0 deletions

View File

@@ -0,0 +1,144 @@
const Encore = require('@symfony/webpack-encore');
const path = require('path');
const process = require('process');
const WpjResolver = require('../../web/common/webpack/WpjResolver');
const webpack = require('webpack');
const rootDir = process.cwd();
Encore
// directory where compiled assets will be stored
.setOutputPath('admin/static/build/')
// public path used by the web server to access the output path
.setPublicPath('/admin/static/build/')
.addEntry('icons', '@assets/entrypoints/icons.js')
.addEntry('app', '@assets/entrypoints/app.js')
.addEntry('board', '@assets/entrypoints/board.js')
.addEntry('window', '@assets/entrypoints/window.js')
.addEntry('list', '@assets/entrypoints/list.js')
.addEntry('listEdit', '@assets/entrypoints/listEdit.js')
.addEntry('translate', '@assets/entrypoints/translate.js')
.enableSourceMaps(true)
// enables hashed filenames (e.g. app.abc123.css)
.enableVersioning(Encore.isProduction())
.disableSingleRuntimeChunk()
.enableReactPreset()
// uncomment if you use TypeScript
.enableTypeScriptLoader()
// uncomment if you use Sass/SCSS files
.enableSassLoader(options => {
// https://github.com/sass/node-sass#options
options.sassOptions.includePaths = ['common/static/compass/', 'common'];
options.implementation = require('sass');
})
.enablePostCssLoader(options => {
options.postcssOptions = {
// the directory where the postcss.config.js file is stored
config: 'admin/webpack/'
};
}).addPlugin(
new webpack.DefinePlugin({
ADMIN: true
})
)
.configureDevServerOptions(options => {
options.server = {
type: 'https',
options: {
cert: '/etc/ssl/cert.pem',
key: '/etc/ssl/key.pem',
},
};
options.hot = true;
options.allowedHosts = 'all';
options.host = '0.0.0.0';
options.client = {
overlay: true,
};
options.proxy = {
secure: false,
context: () => true,
target: 'https://localhost'
};
});
if (Encore.isDevServer()) {
Encore.disableCssExtraction();
} else {
//Encore.cleanupOutputBeforeBuild();
}
const EncoreProxy = new Proxy(Encore, {
get: (target, prop) => {
if (prop === 'getWebpackConfig') {
return (...parameters) => {
const config = target[prop](...parameters);
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const loaders = [];
if (!Encore.isDevServer()) {
loaders.push(MiniCssExtractPlugin.loader);
} else {
loaders.push('style-loader');
}
// config.stats = 'verbose';
// config.resolve.modules = [path.join(rootDir, 'engine/node_modules'), path.join(rootDir, 'node_modules')];
// config.resolveLoader = config.resolve;
config.module.rules.push({
test: /\.font\.js/,
use: [
...loaders,
{
loader: 'css-loader',
},
{
loader: 'webfonts-loader',
options: {
publicPath: '/admin/static/build/'
}
}
]
});
const WpjResolver = require('./WpjResolver.js');
config.resolve.plugins = [
new WpjResolver({
rule: /^@assets/,
paths: {
common: 'admin/webpack/assets/'
}
}),
new WpjResolver({
rule: /^@static/,
paths: {
common: 'admin/static/'
}
}),
new WpjResolver({
rule: /^@hack/,
paths: {
shop: './admin/static/build' + path.resolve(__dirname, 'assets/fonts/')
}
})
];
return config;
};
}
return (...parameters) => {
const res = target[prop](...parameters);
return (res === target) ? EncoreProxy : res;
};
}
});
module.exports = EncoreProxy.getWebpackConfig();