mirror of
https://github.com/SchildiChat/element-web.git
synced 2024-10-01 01:26:12 -04:00
67e9606d55
A step towards a real solution for https://github.com/vector-im/riot-web/issues/7305 This approach makes use of `npm link` to remove the use of symlinks in the build process. The build process has also been altered to invoke the build process of each underlying SDK (react, js). This means that one can now `npm link` and `npm start` and have a working environment. At the same time, parallelshell was dropped due to lack of maintenance from the maintainer.
45 lines
1.2 KiB
JavaScript
45 lines
1.2 KiB
JavaScript
const fs = require('fs');
|
|
const path = require('path');
|
|
const child_process = require('child_process');
|
|
|
|
|
|
const task = process.argv[2];
|
|
if (task !== "build" && task !== "watch") {
|
|
console.error("Expected a task of 'build' or 'watch'");
|
|
process.exit(1);
|
|
}
|
|
|
|
const sdkName = process.argv[3];
|
|
if (!sdkName) {
|
|
console.error("Missing SDK name");
|
|
process.exit(1);
|
|
}
|
|
|
|
const sdkPath = path.dirname(require.resolve(`matrix-${sdkName}-sdk/package.json`));
|
|
console.log(sdkPath);
|
|
|
|
// We only want to build the SDK if it looks like it was `npm link`ed
|
|
if (fs.existsSync(path.join(sdkPath, '.git'))) {
|
|
console.log("Installing develop dependencies");
|
|
const devEnv = Object.assign({}, process.env, {NODE_ENV: "development"});
|
|
child_process.execSync("npm install --only=dev", {
|
|
env: devEnv,
|
|
cwd: sdkPath,
|
|
});
|
|
|
|
// Because webpack is made of fail
|
|
if (sdkName === "js") {
|
|
console.log("Installing source-map-loader");
|
|
child_process.execSync("npm install source-map-loader", {
|
|
env: devEnv,
|
|
cwd: sdkPath,
|
|
});
|
|
}
|
|
|
|
console.log("Performing task: " + task);
|
|
child_process.execSync(`npm ${task === "build" ? "run build" : "start"}`, {
|
|
env: process.env,
|
|
cwd: sdkPath,
|
|
});
|
|
}
|