mirror of
https://github.com/vector-im/hydrogen-web.git
synced 2024-12-23 03:25:12 +01:00
move common parts of build config to separate file and merge with it
This commit is contained in:
parent
f2b822e5d2
commit
c11f0774eb
@ -34,6 +34,7 @@
|
|||||||
"fake-indexeddb": "^3.1.2",
|
"fake-indexeddb": "^3.1.2",
|
||||||
"impunity": "^1.0.9",
|
"impunity": "^1.0.9",
|
||||||
"mdn-polyfills": "^5.20.0",
|
"mdn-polyfills": "^5.20.0",
|
||||||
|
"merge-options": "^3.0.4",
|
||||||
"node-html-parser": "^4.0.0",
|
"node-html-parser": "^4.0.0",
|
||||||
"postcss-css-variables": "^0.18.0",
|
"postcss-css-variables": "^0.18.0",
|
||||||
"postcss-flexbugs-fixes": "^5.0.2",
|
"postcss-flexbugs-fixes": "^5.0.2",
|
||||||
|
50
vite.common-config.js
Normal file
50
vite.common-config.js
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
const cssvariables = require("postcss-css-variables");
|
||||||
|
const flexbugsFixes = require("postcss-flexbugs-fixes");
|
||||||
|
const fs = require("fs");
|
||||||
|
const path = require("path");
|
||||||
|
const version = JSON.parse(fs.readFileSync(path.join(__dirname, "package.json"), "utf8")).version;
|
||||||
|
|
||||||
|
const commonOptions = {
|
||||||
|
logLevel: "warn",
|
||||||
|
public: false,
|
||||||
|
server: {
|
||||||
|
hmr: false
|
||||||
|
},
|
||||||
|
resolve: {
|
||||||
|
alias: {
|
||||||
|
// these should only be imported by the base-x package in any runtime code
|
||||||
|
// and works in the browser with a Uint8Array shim,
|
||||||
|
// rather than including a ton of polyfill code
|
||||||
|
"safe-buffer": "./scripts/package-overrides/safe-buffer/index.js",
|
||||||
|
"buffer": "./scripts/package-overrides/buffer/index.js",
|
||||||
|
}
|
||||||
|
},
|
||||||
|
build: {
|
||||||
|
emptyOutDir: true,
|
||||||
|
minify: true,
|
||||||
|
sourcemap: true,
|
||||||
|
assetsInlineLimit: 0,
|
||||||
|
polyfillModulePreload: false,
|
||||||
|
},
|
||||||
|
define: {
|
||||||
|
DEFINE_VERSION: JSON.stringify(version),
|
||||||
|
DEFINE_GLOBAL_HASH: JSON.stringify(null),
|
||||||
|
},
|
||||||
|
css: {
|
||||||
|
postcss: {
|
||||||
|
plugins: [
|
||||||
|
cssvariables({
|
||||||
|
preserve: (declaration) => {
|
||||||
|
return declaration.value.indexOf("var(--ios-") == 0;
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
// the grid option creates some source fragment that causes the vite warning reporter to crash because
|
||||||
|
// it wants to log a warning on a line that does not exist in the source fragment.
|
||||||
|
// autoprefixer({overrideBrowserslist: ["IE 11"], grid: "no-autoplace"}),
|
||||||
|
flexbugsFixes()
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
module.exports = commonOptions;
|
@ -1,39 +1,16 @@
|
|||||||
const cssvariables = require("postcss-css-variables");
|
|
||||||
const flexbugsFixes = require("postcss-flexbugs-fixes");
|
|
||||||
|
|
||||||
const fs = require("fs");
|
|
||||||
const path = require("path");
|
|
||||||
|
|
||||||
const injectWebManifest = require("./scripts/build-plugins/manifest");
|
const injectWebManifest = require("./scripts/build-plugins/manifest");
|
||||||
const {injectServiceWorker, createPlaceholderValues} = require("./scripts/build-plugins/service-worker");
|
const {injectServiceWorker, createPlaceholderValues} = require("./scripts/build-plugins/service-worker");
|
||||||
const {defineConfig} = require('vite');
|
const {defineConfig} = require('vite');
|
||||||
const version = JSON.parse(fs.readFileSync(path.join(__dirname, "package.json"), "utf8")).version;
|
const mergeOptions = require('merge-options').bind({concatArrays: true});
|
||||||
|
const commonOptions = require("./vite.common-config.js");
|
||||||
|
|
||||||
export default defineConfig(({mode}) => {
|
export default defineConfig(({mode}) => {
|
||||||
const definePlaceholders = createPlaceholderValues(mode);
|
const definePlaceholders = createPlaceholderValues(mode);
|
||||||
return {
|
return mergeOptions(commonOptions, {
|
||||||
public: false,
|
|
||||||
root: "src/platform/web",
|
root: "src/platform/web",
|
||||||
base: "./",
|
base: "./",
|
||||||
server: {
|
|
||||||
hmr: false
|
|
||||||
},
|
|
||||||
resolve: {
|
|
||||||
alias: {
|
|
||||||
// these should only be imported by the base-x package in any runtime code
|
|
||||||
// and works in the browser with a Uint8Array shim,
|
|
||||||
// rather than including a ton of polyfill code
|
|
||||||
"safe-buffer": "./scripts/package-overrides/safe-buffer/index.js",
|
|
||||||
"buffer": "./scripts/package-overrides/buffer/index.js",
|
|
||||||
}
|
|
||||||
},
|
|
||||||
build: {
|
build: {
|
||||||
outDir: "../../../target",
|
outDir: "../../../target",
|
||||||
emptyOutDir: true,
|
|
||||||
minify: true,
|
|
||||||
sourcemap: true,
|
|
||||||
assetsInlineLimit: 0,
|
|
||||||
polyfillModulePreload: false,
|
|
||||||
},
|
},
|
||||||
plugins: [
|
plugins: [
|
||||||
// important this comes before service worker
|
// important this comes before service worker
|
||||||
@ -45,28 +22,6 @@ export default defineConfig(({mode}) => {
|
|||||||
"sw": definePlaceholders
|
"sw": definePlaceholders
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
define: {
|
define: definePlaceholders,
|
||||||
DEFINE_VERSION: JSON.stringify(version),
|
});
|
||||||
...definePlaceholders
|
|
||||||
},
|
|
||||||
css: {
|
|
||||||
postcss: {
|
|
||||||
plugins: [
|
|
||||||
cssvariables({
|
|
||||||
preserve: (declaration) => {
|
|
||||||
return declaration.value.indexOf("var(--ios-") == 0;
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
// the grid option creates some source fragment that causes the vite warning reporter to crash because
|
|
||||||
// it wants to log a warning on a line that does not exist in the source fragment.
|
|
||||||
// autoprefixer({overrideBrowserslist: ["IE 11"], grid: "no-autoplace"}),
|
|
||||||
flexbugsFixes()
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
});
|
});
|
||||||
|
|
||||||
function scriptTagPath(htmlFile, index) {
|
|
||||||
return `${htmlFile}?html-proxy&index=${index}.js`;
|
|
||||||
}
|
|
||||||
|
12
yarn.lock
12
yarn.lock
@ -963,6 +963,11 @@ is-number@^7.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
|
resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
|
||||||
integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
|
integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
|
||||||
|
|
||||||
|
is-plain-obj@^2.1.0:
|
||||||
|
version "2.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287"
|
||||||
|
integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==
|
||||||
|
|
||||||
isexe@^2.0.0:
|
isexe@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
|
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
|
||||||
@ -1036,6 +1041,13 @@ mdn-polyfills@^5.20.0:
|
|||||||
resolved "https://registry.yarnpkg.com/mdn-polyfills/-/mdn-polyfills-5.20.0.tgz#ca8247edf20a4f60dec6804372229812b348260b"
|
resolved "https://registry.yarnpkg.com/mdn-polyfills/-/mdn-polyfills-5.20.0.tgz#ca8247edf20a4f60dec6804372229812b348260b"
|
||||||
integrity sha512-AbTv1ytcoOUAkxw6u5oo2QPf27kEZgxBAQr49jFb4i2VnTnFGfJbcIQ9UDBOdfNECeXsgkYFwB2BkdeTfOzztw==
|
integrity sha512-AbTv1ytcoOUAkxw6u5oo2QPf27kEZgxBAQr49jFb4i2VnTnFGfJbcIQ9UDBOdfNECeXsgkYFwB2BkdeTfOzztw==
|
||||||
|
|
||||||
|
merge-options@^3.0.4:
|
||||||
|
version "3.0.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/merge-options/-/merge-options-3.0.4.tgz#84709c2aa2a4b24c1981f66c179fe5565cc6dbb7"
|
||||||
|
integrity sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==
|
||||||
|
dependencies:
|
||||||
|
is-plain-obj "^2.1.0"
|
||||||
|
|
||||||
merge2@^1.3.0:
|
merge2@^1.3.0:
|
||||||
version "1.4.1"
|
version "1.4.1"
|
||||||
resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
|
resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
|
||||||
|
Loading…
Reference in New Issue
Block a user