[Build] Fix ErrorBoundary exporting (#30)
This commit is contained in:
parent
dc5ad0ca1f
commit
3531132c38
2 changed files with 47 additions and 43 deletions
59
build.mjs
59
build.mjs
|
@ -1,29 +1,35 @@
|
||||||
|
import { build } from "esbuild";
|
||||||
|
import { replace } from "esbuild-plugin-replace";
|
||||||
|
import alias from "esbuild-plugin-alias";
|
||||||
|
import swc from "@swc/core";
|
||||||
import { promisify } from "util";
|
import { promisify } from "util";
|
||||||
import { exec as _exec } from "child_process";
|
import { exec as _exec } from "child_process";
|
||||||
import fs from "fs/promises";
|
import fs from "fs/promises";
|
||||||
|
import path from "path";
|
||||||
import { rollup } from "rollup";
|
|
||||||
import { swc } from "rollup-plugin-swc3";
|
|
||||||
import { typescriptPaths } from "rollup-plugin-typescript-paths";
|
|
||||||
import esbuild from "rollup-plugin-esbuild";
|
|
||||||
import replace from "@rollup/plugin-replace";
|
|
||||||
import nodeResolve from "@rollup/plugin-node-resolve";
|
|
||||||
|
|
||||||
const exec = promisify(_exec);
|
const exec = promisify(_exec);
|
||||||
|
|
||||||
|
const tsconfig = JSON.parse(await fs.readFile("./tsconfig.json"));
|
||||||
|
const aliases = Object.fromEntries(Object.entries(tsconfig.compilerOptions.paths).map(([alias, [target]]) => [alias, path.resolve(target)]));
|
||||||
const commit = (await exec("git rev-parse HEAD")).stdout.trim().substring(0, 7) || "custom";
|
const commit = (await exec("git rev-parse HEAD")).stdout.trim().substring(0, 7) || "custom";
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const bundle = await rollup({
|
await build({
|
||||||
input: "src/index.ts",
|
entryPoints: ["./src/index.ts"],
|
||||||
onwarn: () => {},
|
outfile: "./dist/vendetta.js",
|
||||||
|
minify: true,
|
||||||
|
bundle: true,
|
||||||
|
format: "iife",
|
||||||
|
target: "esnext",
|
||||||
plugins: [
|
plugins: [
|
||||||
replace({
|
{
|
||||||
__vendettaVersion: commit,
|
name: "swc",
|
||||||
preventAssignment: true,
|
setup: (build) => {
|
||||||
}),
|
build.onLoad({ filter: /\.[jt]sx?/ }, async (args) => {
|
||||||
typescriptPaths(),
|
// This actually works for dependencies as well!!
|
||||||
nodeResolve({ extensions: [".tsx", ".ts", ".jsx", ".js", ".json"] }),
|
const result = await swc.transformFile(args.path, {
|
||||||
swc({
|
jsc: {
|
||||||
|
externalHelpers: true,
|
||||||
|
},
|
||||||
env: {
|
env: {
|
||||||
targets: "defaults",
|
targets: "defaults",
|
||||||
include: [
|
include: [
|
||||||
|
@ -31,18 +37,19 @@ try {
|
||||||
"transform-arrow-functions",
|
"transform-arrow-functions",
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
});
|
||||||
|
return { contents: result.code };
|
||||||
|
});
|
||||||
|
},
|
||||||
|
},
|
||||||
|
alias(aliases),
|
||||||
|
replace({
|
||||||
|
"__vendettaVersion": commit,
|
||||||
}),
|
}),
|
||||||
esbuild({ minify: true }),
|
|
||||||
],
|
],
|
||||||
|
legalComments: "none",
|
||||||
});
|
});
|
||||||
|
|
||||||
await bundle.write({
|
|
||||||
format: "iife",
|
|
||||||
file: "dist/vendetta.js",
|
|
||||||
compact: true,
|
|
||||||
});
|
|
||||||
await bundle.close();
|
|
||||||
|
|
||||||
await fs.appendFile("./dist/vendetta.js", "//# sourceURL=Vendetta");
|
await fs.appendFile("./dist/vendetta.js", "//# sourceURL=Vendetta");
|
||||||
console.log("Build successful!");
|
console.log("Build successful!");
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
|
11
package.json
11
package.json
|
@ -15,20 +15,17 @@
|
||||||
"license": "BSD-3-Clause",
|
"license": "BSD-3-Clause",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@react-native-clipboard/clipboard": "1.10.0",
|
"@react-native-clipboard/clipboard": "1.10.0",
|
||||||
"@rollup/plugin-node-resolve": "^15.0.1",
|
|
||||||
"@rollup/plugin-replace": "^5.0.2",
|
|
||||||
"@swc/core": "^1.3.35",
|
"@swc/core": "^1.3.35",
|
||||||
"@types/react": "18.0.27",
|
"@types/react": "18.0.27",
|
||||||
"@types/react-native": "0.70.6",
|
"@types/react-native": "0.70.6",
|
||||||
"esbuild": "^0.17.10",
|
"esbuild": "^0.17.11",
|
||||||
|
"esbuild-plugin-alias": "^0.2.1",
|
||||||
|
"esbuild-plugin-replace": "^1.3.0",
|
||||||
"moment": "2.22.2",
|
"moment": "2.22.2",
|
||||||
"rollup": "^3.17.1",
|
|
||||||
"rollup-plugin-esbuild": "^5.0.0",
|
|
||||||
"rollup-plugin-swc3": "^0.8.0",
|
|
||||||
"rollup-plugin-typescript-paths": "^1.4.0",
|
|
||||||
"typescript": "^4.9.5"
|
"typescript": "^4.9.5"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@swc/helpers": "^0.4.14",
|
||||||
"spitroast": "^1.4.2"
|
"spitroast": "^1.4.2"
|
||||||
},
|
},
|
||||||
"pnpm": {
|
"pnpm": {
|
||||||
|
|
Loading…
Reference in a new issue