mirror of https://github.com/zulip/zulip.git
webpack: Build a ZULIP_VERSION global constant into the built product.
This commit is contained in:
parent
73631950a5
commit
a8181152b7
|
@ -237,6 +237,9 @@
|
||||||
"browser": true,
|
"browser": true,
|
||||||
"node": false
|
"node": false
|
||||||
},
|
},
|
||||||
|
"globals": {
|
||||||
|
"ZULIP_VERSION": false
|
||||||
|
},
|
||||||
"rules": {
|
"rules": {
|
||||||
"no-console": "error"
|
"no-console": "error"
|
||||||
},
|
},
|
||||||
|
|
|
@ -3,11 +3,17 @@ import argparse
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
import subprocess
|
import subprocess
|
||||||
|
import sys
|
||||||
from typing import NoReturn
|
from typing import NoReturn
|
||||||
|
|
||||||
|
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), "..")))
|
||||||
|
|
||||||
os.chdir(os.path.join(os.path.dirname(__file__), "../web"))
|
os.chdir(os.path.join(os.path.dirname(__file__), "../web"))
|
||||||
|
|
||||||
|
|
||||||
|
from version import ZULIP_VERSION
|
||||||
|
|
||||||
|
|
||||||
def build_for_prod_or_puppeteer(quiet: bool) -> NoReturn:
|
def build_for_prod_or_puppeteer(quiet: bool) -> NoReturn:
|
||||||
"""Builds for production, writing the output to disk"""
|
"""Builds for production, writing the output to disk"""
|
||||||
|
|
||||||
|
@ -15,7 +21,11 @@ def build_for_prod_or_puppeteer(quiet: bool) -> NoReturn:
|
||||||
with open("/proc/meminfo") as meminfo:
|
with open("/proc/meminfo") as meminfo:
|
||||||
if int(next(meminfo).split()[1]) < 3 * 1024 * 1024:
|
if int(next(meminfo).split()[1]) < 3 * 1024 * 1024:
|
||||||
webpack_args += ["--max-old-space-size=1536"]
|
webpack_args += ["--max-old-space-size=1536"]
|
||||||
webpack_args += ["../node_modules/.bin/webpack-cli", "--mode=production"]
|
webpack_args += [
|
||||||
|
"../node_modules/.bin/webpack-cli",
|
||||||
|
"--mode=production",
|
||||||
|
f"--env=ZULIP_VERSION={ZULIP_VERSION}",
|
||||||
|
]
|
||||||
if quiet:
|
if quiet:
|
||||||
webpack_args += ["--stats=errors-only"]
|
webpack_args += ["--stats=errors-only"]
|
||||||
os.execvp(webpack_args[0], webpack_args)
|
os.execvp(webpack_args[0], webpack_args)
|
||||||
|
|
|
@ -9,3 +9,5 @@ interface JQuery {
|
||||||
expectOne(): JQuery;
|
expectOne(): JQuery;
|
||||||
tab(action?: string): this; // From web/third/bootstrap
|
tab(action?: string): this; // From web/third/bootstrap
|
||||||
}
|
}
|
||||||
|
|
||||||
|
declare const ZULIP_VERSION: string;
|
||||||
|
|
|
@ -5,6 +5,7 @@ import path from "path";
|
||||||
import CssMinimizerPlugin from "css-minimizer-webpack-plugin";
|
import CssMinimizerPlugin from "css-minimizer-webpack-plugin";
|
||||||
import HtmlWebpackPlugin from "html-webpack-plugin";
|
import HtmlWebpackPlugin from "html-webpack-plugin";
|
||||||
import MiniCssExtractPlugin from "mini-css-extract-plugin";
|
import MiniCssExtractPlugin from "mini-css-extract-plugin";
|
||||||
|
import {DefinePlugin} from "webpack";
|
||||||
import type webpack from "webpack";
|
import type webpack from "webpack";
|
||||||
import BundleTracker from "webpack-bundle-tracker";
|
import BundleTracker from "webpack-bundle-tracker";
|
||||||
|
|
||||||
|
@ -12,7 +13,10 @@ import DebugRequirePlugin from "./debug-require-webpack-plugin";
|
||||||
import assets from "./webpack.assets.json";
|
import assets from "./webpack.assets.json";
|
||||||
import dev_assets from "./webpack.dev-assets.json";
|
import dev_assets from "./webpack.dev-assets.json";
|
||||||
|
|
||||||
export default (env: {minimize?: boolean} = {}, argv: {mode?: string}): webpack.Configuration[] => {
|
export default (
|
||||||
|
env: {minimize?: boolean; ZULIP_VERSION?: string} = {},
|
||||||
|
argv: {mode?: string},
|
||||||
|
): webpack.Configuration[] => {
|
||||||
const production: boolean = argv.mode === "production";
|
const production: boolean = argv.mode === "production";
|
||||||
|
|
||||||
const baseConfig: webpack.Configuration = {
|
const baseConfig: webpack.Configuration = {
|
||||||
|
@ -194,6 +198,9 @@ export default (env: {minimize?: boolean} = {}, argv: {mode?: string}): webpack.
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
plugins: [
|
plugins: [
|
||||||
|
new DefinePlugin({
|
||||||
|
ZULIP_VERSION: JSON.stringify(env.ZULIP_VERSION || "development"),
|
||||||
|
}),
|
||||||
new DebugRequirePlugin(),
|
new DebugRequirePlugin(),
|
||||||
new BundleTracker({
|
new BundleTracker({
|
||||||
filename: production
|
filename: production
|
||||||
|
|
Loading…
Reference in New Issue