|
|
@@ -2,10 +2,17 @@ const path = require("path");
|
|
|
const exec = require("./lib/shell");
|
|
|
const globby = require("globby");
|
|
|
|
|
|
-let rootDir = path.resolve(__dirname, "..");
|
|
|
-let examplesDir = path.join(rootDir, "example-projects");
|
|
|
-let givenProjName = process.argv[2];
|
|
|
-let runCmd = process.argv[3];
|
|
|
+const rootDir = path.resolve(__dirname, "..");
|
|
|
+const examplesDir = path.join(rootDir, "example-projects");
|
|
|
+const givenProjName = process.argv[2];
|
|
|
+const runCmd = process.argv[3];
|
|
|
+
|
|
|
+///////////////////////////////////////////////////////
|
|
|
+// Project Settings
|
|
|
+const redirectProjects = [["parcel", "parcel-2"]];
|
|
|
+const disabledProjects = ["next", "next-scheduler"];
|
|
|
+const pnpSimulatedProjects = ["angular"];
|
|
|
+///////////////////////////////////////////////////////
|
|
|
|
|
|
if (!givenProjName) {
|
|
|
console.error('Must specify an example-project name, or "all"');
|
|
|
@@ -17,17 +24,21 @@ if (!runCmd) {
|
|
|
process.exit(1);
|
|
|
}
|
|
|
|
|
|
-let projNames =
|
|
|
+const projNames =
|
|
|
givenProjName === "all"
|
|
|
? globby.sync("*", { cwd: examplesDir, onlyDirectories: true })
|
|
|
: [givenProjName];
|
|
|
|
|
|
projNames.forEach((projName) => {
|
|
|
- // Rewrite projDir and projName to redirect parcel to parcel-2 directory
|
|
|
- if (projName === "parcel") {
|
|
|
- console.info("Redirecting to 'parcel-2' directory");
|
|
|
- projName = "parcel-2";
|
|
|
- } else if (projName === "next" || projName === "next-scheduler") {
|
|
|
+ // Rewrite projName to redirect directory
|
|
|
+ const redirect = redirectProjects.find(([val]) => val === projName);
|
|
|
+ if (redirect) {
|
|
|
+ console.info(`Redirecting '${redirect[0]}' to '${redirect[1]}' directory`);
|
|
|
+ projName = redirect[1];
|
|
|
+ }
|
|
|
+
|
|
|
+ // Don't run disabled projects
|
|
|
+ if (disabledProjects.includes(projName)) {
|
|
|
console.info("This example is disabled till the next major release");
|
|
|
process.exit();
|
|
|
}
|
|
|
@@ -38,9 +49,9 @@ projNames.forEach((projName) => {
|
|
|
console.log("PROJECT:", projName);
|
|
|
console.log(projDir);
|
|
|
|
|
|
+ // Decide whether to simulate pnp or run normal yarn
|
|
|
let execCmd = [runCmd];
|
|
|
-
|
|
|
- if (projName === "angular") {
|
|
|
+ if (pnpSimulatedProjects.includes(projName)) {
|
|
|
console.log("Using PnP simulation");
|
|
|
execCmd = ["example:pnp", projName, runCmd];
|
|
|
} else {
|