Commit 2105a15c authored by Jérome Perrin's avatar Jérome Perrin

webpack: expose production/debug mode

so that when things goes wrong we can make a debug build
parent 3594c27c
...@@ -37,6 +37,7 @@ compiler.outputFileSystem = require("webdav-fs").createAdapter( ...@@ -37,6 +37,7 @@ compiler.outputFileSystem = require("webdav-fs").createAdapter(
{ {
username: args.username, username: args.username,
password: args.password, password: args.password,
maxBodyLength: 32 * 1024 * 1024,
httpsAgent: args.insecure httpsAgent: args.insecure
? new http.Agent({ ? new http.Agent({
rejectUnauthorized: false, rejectUnauthorized: false,
......
// import 'core-js/actual'; // BBB firefox 68 import 'core-js/actual'; // BBB firefox 68
import "./public-path.js" import "./public-path.js"
import * as monaco from 'monaco-editor'; import * as monaco from 'monaco-editor';
import init, { Workspace } from "./ruff/crates/ruff_wasm/src/pkg"; import init, { Workspace } from "./ruff/crates/ruff_wasm/src/pkg";
......
...@@ -2,8 +2,10 @@ ...@@ -2,8 +2,10 @@
"name": "monaco-editor-erp5", "name": "monaco-editor-erp5",
"scripts": { "scripts": {
"build:wasm": "wasm-pack -v build ruff/crates/ruff_wasm --target web", "build:wasm": "wasm-pack -v build ruff/crates/ruff_wasm --target web",
"build": "webpack --config webpack.config.js", "build": "npm run build:prod",
"deploy": "node deploy.js" "build:prod": "webpack --config webpack.config.js --node-env production",
"build:dev": "webpack --config webpack.config.js --node-env development",
"deploy": "NODE_ENV=production node deploy.js"
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "^7.20.5", "@babel/core": "^7.20.5",
......
const path = require('path'); const path = require("path");
const webpack = require('webpack'); const webpack = require("webpack");
const TerserPlugin = require("terser-webpack-plugin"); const TerserPlugin = require("terser-webpack-plugin");
const productionMode = process.env.NODE_ENV == "production";
console.log("building in production mode:", productionMode);
module.exports = { module.exports = {
mode: 'production',
entry: { entry: {
"app": './index.js', app: "./index.js",
"editor.worker": 'monaco-editor/esm/vs/editor/editor.worker.js', "editor.worker": "monaco-editor/esm/vs/editor/editor.worker.js",
"json.worker": 'monaco-editor/esm/vs/language/json/json.worker', "json.worker": "monaco-editor/esm/vs/language/json/json.worker",
"css.worker": 'monaco-editor/esm/vs/language/css/css.worker', "css.worker": "monaco-editor/esm/vs/language/css/css.worker",
"html.worker": 'monaco-editor/esm/vs/language/html/html.worker', "html.worker": "monaco-editor/esm/vs/language/html/html.worker",
"ts.worker": 'monaco-editor/esm/vs/language/typescript/ts.worker', "ts.worker": "monaco-editor/esm/vs/language/typescript/ts.worker",
}, },
output: { output: {
globalObject: 'self', globalObject: "self",
filename: '[name].bundle.min.js', filename: "[name].bundle.min.js",
path: path.resolve(__dirname, 'dist'), path: path.resolve(__dirname, "dist"),
}, },
module: { module: {
rules: [{ rules: [
test: /\.css$/, {
use: ['style-loader', 'css-loader'] test: /\.css$/,
}, { use: ["style-loader", "css-loader"],
test: /\.ttf$/,
use: ['file-loader']
},
{
test: /\.m?js$/,
exclude: {
and: [/node_modules/],
not: [
/monaco-editor/,
]
}, },
use: { {
loader: 'babel-loader', test: /\.ttf$/,
options: { use: ["file-loader"],
presets: [ },
['@babel/preset-env', { {
targets: { firefox: 68 }, test: /\.m?js$/,
corejs: "3" exclude: {
}] and: [/node_modules/],
], not: [/monaco-editor/],
} },
} use: {
} loader: "babel-loader",
] options: {
}, presets: [
optimization: { [
minimize: true, "@babel/preset-env",
minimizer: [new TerserPlugin()], {
targets: { firefox: 68 },
corejs: "3",
},
],
],
},
},
},
],
}, },
optimization: productionMode
? {
minimize: true,
minimizer: [new TerserPlugin()],
}
: undefined,
}; };
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment