This commit is contained in:
2024-03-29 14:22:19 +07:00
commit f5e6fd57cd
129 changed files with 10715 additions and 0 deletions

View File

@@ -0,0 +1,20 @@
process.env.NODE_ENV = 'production';
const compression = require('compression');
const { output } = require('./directories');
const server = require('./server');
module.exports = {
server: output,
port: server.PROD_PORT,
ui: {
port: server.PROD_DASHBOARD_PORT,
},
open: 'local',
ghostMode: false,
logPrefix: 'SYNC',
middleware: [
compression(),
],
};

View File

@@ -0,0 +1,12 @@
const server = require('./server');
module.exports = {
port: server.DEV_PORT,
proxy: `http://localhost:${server.STATIC_PORT}`,
ui: {
port: server.DASHBOARD_PORT,
},
open: true,
ghostMode: false,
logPrefix: 'SYNC',
};

View File

@@ -0,0 +1,77 @@
const { addPath } = require('../utils');
const isProduction = process.env.NODE_ENV === 'production';
const ignoreTemplate = ['$*/**/*', '_*/**/*'];
const nodeModules = 'node_modules/';
exports.nodeModules = nodeModules;
const src = 'src/';
exports.src = src;
const dest = 'static/';
const dist = 'dist/';
const output = isProduction ? dist : dest;
exports.output = output;
const srcLocales = `${src}locales/`;
exports.srcLocales = srcLocales;
const srcAsset = `${src}assets/`;
exports.srcAsset = srcAsset;
const filesCopy = addPath(srcAsset, '**', 'favicon/**');
const filesFavicon = addPath(srcAsset, 'favicon/**');
const filesAssets = filesCopy
.concat(filesFavicon)
.concat(isProduction ? 'index.html' : []);
exports.filesAssets = filesAssets;
const srcScript = `${src}scripts/`;
exports.srcScript = srcScript;
const filesJs = addPath(srcScript, '**/*.js', ignoreTemplate);
exports.filesJs = filesJs;
const filesJsES6 = `${srcScript}*.js`;
exports.filesJsES6 = filesJsES6;
const outputScript = `${output}js/`;
exports.outputScript = outputScript;
const outputChunkScripts = `${outputScript}chunks/`;
exports.outputChunkScripts = outputChunkScripts;
const filesChunkJs = addPath(outputChunkScripts, '*.js', '*.backup.js');
exports.filesChunkJs = filesChunkJs;
const srcStyle = `${src}styles/`;
exports.srcStyle = srcStyle;
const filesScssBuilt = addPath(
srcStyle,
'**/*.scss',
['$*/**/*.scss', '_*/**/*.scss'],
);
exports.filesScssBuilt = filesScssBuilt;
const filesScssPartial = addPath(
srcStyle,
['$*/**/*.scss', '_*/**/*.scss'],
);
exports.filesScssPartial = filesScssPartial;
const outputStyle = `${output}css/`;
exports.outputStyle = outputStyle;
const filesCssBuilt = addPath(outputStyle, '*.css', '*-rtl.css');
exports.filesCssBuilt = filesCssBuilt;
const srcView = `${src}views/`;
exports.srcView = srcView;
const filesPugBuilt = addPath(srcView, '**/*.pug', ['$*/**/*', '_*/**/*']);
exports.filesPugBuilt = filesPugBuilt;
const filesPug = addPath(srcView, '**/*.pug');
exports.filesPug = filesPug;

View File

@@ -0,0 +1,8 @@
const { srcScript } = require('./directories');
const libPath = `${srcScript}_libs/`;
module.exports = [
`${libPath}modernizr-custom-3.6.0.js`,
`node_modules/detectizr/dist/detectizr.js`,
];

View File

@@ -0,0 +1,6 @@
module.exports = {
script: 'server/index.js',
watch: [
'server/',
],
};

View File

@@ -0,0 +1,4 @@
module.exports = {
pretty: true,
doctype: 'html',
};

View File

@@ -0,0 +1,11 @@
module.exports = {
rtl: {
suffix: '-rtl',
},
min: {
suffix: '.min',
},
backup: {
suffix: '.backup',
},
};

View File

@@ -0,0 +1,3 @@
module.exports = {
outputStyle: 'expanded',
};

View File

@@ -0,0 +1,20 @@
const PORT = 4999;
module.exports = {
PROD_PORT: 8080,
STATIC_PORT: PORT,
get DEV_PORT() {
return this.STATIC_PORT + 1;
},
get DASHBOARD_PORT() {
return this.STATIC_PORT - 1;
},
get PROD_DASHBOARD_PORT() {
return this.PROD_PORT - 1;
},
DEFAULT_LANG: 'en',
};

View File

@@ -0,0 +1,9 @@
// Change this value to false if you don't wanna use cache
const { DEFAULT_LANG } = require('./server');
module.exports = {
css: `dist/css/styles.min.css?v=${Date.now()}`,
'css-rtl': `dist/css/styles-rtl.min.css?v=${Date.now()}`,
js: `dist/js/scripts.min.js?v=${Date.now()}`,
redirect: `<meta http-equiv="refresh" content="0;url=./${DEFAULT_LANG}/sitemap.html">`,
};

View File

@@ -0,0 +1,51 @@
/* eslint-disable-next-line */
const { resolve, join } = require('path');
const { ProvidePlugin } = require('webpack');
const { srcScript, output, outputScript } = require('./directories');
const nodeEnv = process.env.NODE_ENV;
const isDevelopment = nodeEnv === 'development';
module.exports = {
mode: 'none',
context: join(__dirname, '../../', output),
output: {
path: join(__dirname, '../../', outputScript),
filename: '[name].js',
},
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'babel-loader',
options: {
cacheDirectory: true,
},
},
],
},
resolve: {
alias: {
'@': resolve(srcScript),
},
},
plugins: [
new ProvidePlugin({
Plugin: ['@/cores/plugin', 'default'],
jQuery: 'jquery', // replace by using external jquery
$: ['jquery'],
}),
],
optimization: {
nodeEnv,
chunkIds: 'total-size',
concatenateModules: true,
flagIncludedChunks: true,
moduleIds: 'size',
sideEffects: true,
splitChunks: false,
},
devtool: isDevelopment && 'source-map',
};