diff --git a/.gitignore b/.gitignore index b5dfec2..c5c65c8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .next +*.log examples/**/*.lock dist node_modules diff --git a/examples/500/package.json b/examples/500/package.json index 40aa095..7a222f4 100644 --- a/examples/500/package.json +++ b/examples/500/package.json @@ -1,6 +1,6 @@ { "private": true, - "name": "404-example", + "name": "500-example", "version": "0.0.0", "scripts": { "dev": "polydev", diff --git a/examples/parcel/.gitignore b/examples/parcel/.gitignore new file mode 100644 index 0000000..4849e0a --- /dev/null +++ b/examples/parcel/.gitignore @@ -0,0 +1,2 @@ +.cache +public diff --git a/examples/parcel/package.json b/examples/parcel/package.json new file mode 100644 index 0000000..18208b9 --- /dev/null +++ b/examples/parcel/package.json @@ -0,0 +1,16 @@ +{ + "private": true, + "name": "parcel-example", + "version": "0.0.0", + "scripts": { + "dev": "polydev", + "start": "NODE_ENV=production polydev" + }, + "devDependencies": { + "parcel-bundler": "^1.12.0" + }, + "dependencies": { + "react": "^16.8.4", + "react-dom": "^16.8.4" + } +} diff --git a/examples/parcel/routes/index.js b/examples/parcel/routes/index.js new file mode 100644 index 0000000..5265b44 --- /dev/null +++ b/examples/parcel/routes/index.js @@ -0,0 +1,4 @@ +const Bundler = require("parcel-bundler") +const bundler = new Bundler("./src/index.html", { outDir: "./public" }) + +module.exports = bundler.middleware() diff --git a/examples/parcel/src/ParcelExample.js b/examples/parcel/src/ParcelExample.js new file mode 100644 index 0000000..d6e8449 --- /dev/null +++ b/examples/parcel/src/ParcelExample.js @@ -0,0 +1,36 @@ +import React, { Fragment, useState } from "react" + +export function ParcelExample() { + const [taps, setTaps] = useState(1) + + return ( + + + + +
+ +
+
+

+ 👋 Howdy from Parcel +

+ +

+ {taps} {taps ? "taps" : "tap"} +

+

+ +

+
+ + +
+ + ) +} diff --git a/examples/parcel/src/index.html b/examples/parcel/src/index.html new file mode 100644 index 0000000..ed33b6b --- /dev/null +++ b/examples/parcel/src/index.html @@ -0,0 +1,8 @@ + + + +
+ + + + diff --git a/examples/parcel/src/index.js b/examples/parcel/src/index.js new file mode 100644 index 0000000..0f948e6 --- /dev/null +++ b/examples/parcel/src/index.js @@ -0,0 +1,5 @@ +import React from "react" +import { render } from "react-dom" +import { ParcelExample } from "./ParcelExample" + +render(, document.getElementById("root")) diff --git a/scripts/start.js b/scripts/start.js index c7a8f56..71cdd82 100755 --- a/scripts/start.js +++ b/scripts/start.js @@ -1,17 +1,26 @@ #!/usr/bin/env node -const shell = require("shelljs") +const { execSync } = require("child_process") +const fs = require("fs") +const path = require("path") const [, , example] = process.argv - -shell.cd("examples") +const examplesDir = path.resolve(__dirname, "../examples") if (!example) { - const examples = shell.ls("-d", "*").map((file) => file) + const examples = fs + .readdirSync(examplesDir, "utf8") + .filter((folder) => + fs.statSync(path.resolve(examplesDir, folder)).isDirectory() + ) throw new Error(`$ yarn example ${examples}`) } -shell.cd(example) -shell.exec("yarn install --production") -shell.exec("yarn start") +const options = { + cwd: path.resolve(examplesDir, example), + stdio: "inherit" +} + +execSync("yarn install", options) +execSync("yarn start", options)