Skip to content

Commit

Permalink
Add postinstall step during build
Browse files Browse the repository at this point in the history
  • Loading branch information
mjackson committed May 5, 2021
1 parent 4dbb97a commit ae5931d
Show file tree
Hide file tree
Showing 8 changed files with 55 additions and 69 deletions.
3 changes: 0 additions & 3 deletions packages/remix-node/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,5 @@
"@types/cookie-signature": "^1.0.3",
"@types/jsesc": "^2.5.1"
},
"scripts": {
"postinstall": "node ./scripts/postinstall.js"
},
"sideEffects": false
}
2 changes: 1 addition & 1 deletion packages/remix-node/scripts/postinstall.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import * as path from "path";

async function run() {
try {
await require("remix/setup").installMagicExports(
await require("remix/magic").installMagicExports(
path.resolve(__dirname, "..", "magicExports")
);
} catch (error) {
Expand Down
2 changes: 1 addition & 1 deletion packages/remix-node/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"exclude": ["__tests__/**/*"],
"exclude": ["__tests__/**/*", "scripts/**/*"],
"compilerOptions": {
"lib": ["ES2019"],
"target": "ES2019",
Expand Down
3 changes: 0 additions & 3 deletions packages/remix-react/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,5 @@
"react": ">=16.8",
"react-dom": ">=16.8"
},
"scripts": {
"postinstall": "node ./scripts/postinstall.js"
},
"sideEffects": false
}
2 changes: 1 addition & 1 deletion packages/remix-react/scripts/postinstall.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import * as path from "path";

async function run() {
try {
await require("remix/setup").installMagicExports(
await require("remix/magic").installMagicExports(
path.resolve(__dirname, "..", "magicExports")
);
} catch (error) {
Expand Down
2 changes: 1 addition & 1 deletion packages/remix-react/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"exclude": ["__tests__/**/*"],
"exclude": ["__tests__/**/*", "scripts/**/*"],
"compilerOptions": {
"lib": ["DOM", "DOM.Iterable", "ES2020"],
"target": "ES2020",
Expand Down
File renamed without changes.
110 changes: 51 additions & 59 deletions rollup.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,24 @@ function isBareModuleId(id) {
return !id.startsWith(".") && !path.isAbsolute(id);
}

/** @return {import('rollup').Plugin} */
function copyAsset(
file,
{ fileName = path.basename(file), transform = null } = {}
) {
return {
name: "copy-asset",
buildStart() {
this.addWatchFile(file);
},
generateBundle() {
let source = fs.readFileSync(file);
if (transform) source = transform(source);
this.emitFile({ type: "asset", fileName, source });
}
};
}

const licenseFile = path.resolve(__dirname, "LICENSE.md");
const license = fs.readFileSync(licenseFile, "utf-8");
const licenseBanner = "// " + license.split("\n").join("\n// ");
Expand All @@ -32,16 +50,10 @@ let createRemix = {
nodeResolve({
extensions: [".ts"]
}),
copyAsset(path.resolve(__dirname, "packages/create-remix/package.json")),
copyAsset(path.resolve(__dirname, "packages/create-remix/README.md")),
copy({
targets: [
{
src: path.resolve(__dirname, "packages/create-remix/package.json"),
dest: "build/node_modules/create-remix"
},
{
src: path.resolve(__dirname, "packages/create-remix/README.md"),
dest: "build/node_modules/create-remix"
},
{
src: path.resolve(__dirname, "packages/create-remix/templates/*"),
dest: "build/node_modules/create-remix/templates"
Expand Down Expand Up @@ -69,32 +81,21 @@ let remix = {
exclude: /node_modules/,
extensions: [".ts"]
}),
copy({
targets: [
{
src: path.resolve(__dirname, "packages/remix/package.json"),
dest: "build/node_modules/remix"
},
{
src: path.resolve(__dirname, "packages/remix/README.md"),
dest: "build/node_modules/remix"
}
]
})
copyAsset(path.resolve(__dirname, "packages/remix/package.json")),
copyAsset(path.resolve(__dirname, "packages/remix/README.md"))
]
};

/** @type {import("rollup").RollupOptions} */
let remixSetup = {
let remixMagic = {
external(id) {
return isBareModuleId(id);
},
input: path.resolve(__dirname, "packages/remix/setup.ts"),
input: path.resolve(__dirname, "packages/remix/magic.ts"),
output: {
banner: licenseBanner,
dir: "build/node_modules/remix",
format: "cjs",
preserveModules: true
format: "cjs"
},
plugins: [
babel({
Expand Down Expand Up @@ -152,12 +153,9 @@ let remixDev = {
nodeResolve({
extensions: [".ts"]
}),
copyAsset(path.resolve(__dirname, "packages/remix-dev/package.json")),
copy({
targets: [
{
src: path.resolve(__dirname, "packages/remix-dev/package.json"),
dest: "build/node_modules/@remix-run/dev"
},
{
src: path.resolve(__dirname, "packages/remix-dev/compiler/shims"),
dest: "build/node_modules/@remix-run/dev/compiler"
Expand Down Expand Up @@ -212,13 +210,17 @@ let remixNode = {
nodeResolve({
extensions: [".ts", ".tsx"]
}),
copy({
targets: [
{
src: path.resolve(__dirname, "packages/remix-node/package.json"),
dest: "build/node_modules/@remix-run/node"
}
]
copyAsset(path.resolve(__dirname, "packages/remix-node/package.json"), {
transform(source) {
let packageJson = {
...JSON.parse(source),
scripts: {
postinstall: "node scripts/postinstall.js"
}
};

return JSON.stringify(packageJson, null, 2);
}
})
]
};
Expand Down Expand Up @@ -308,14 +310,7 @@ function getServerConfig(name) {
nodeResolve({
extensions: [".ts", ".tsx"]
}),
copy({
targets: [
{
src: path.resolve(__dirname, `packages/remix-${name}/package.json`),
dest: `build/node_modules/@remix-run/${name}`
}
]
})
copyAsset(path.resolve(__dirname, `packages/remix-${name}/package.json`))
]
};
}
Expand Down Expand Up @@ -348,13 +343,17 @@ let remixReact = {
nodeResolve({
extensions: [".ts", ".tsx"]
}),
copy({
targets: [
{
src: path.resolve(__dirname, "packages/remix-react/package.json"),
dest: "build/node_modules/@remix-run/react"
}
]
copyAsset(path.resolve(__dirname, "packages/remix-react/package.json"), {
transform(source) {
let packageJson = {
...JSON.parse(source),
scripts: {
postinstall: "node scripts/postinstall.js"
}
};

return JSON.stringify(packageJson, null, 2);
}
})
]
};
Expand Down Expand Up @@ -468,14 +467,7 @@ let remixServe = {
nodeResolve({
extensions: [".ts", ".tsx"]
}),
copy({
targets: [
{
src: path.resolve(__dirname, "packages/remix-serve/package.json"),
dest: `build/node_modules/@remix-run/serve`
}
]
})
copyAsset(path.resolve(__dirname, "packages/remix-serve/package.json"))
]
};

Expand Down Expand Up @@ -505,7 +497,7 @@ let remixServeCli = {
let builds = [
createRemix,
remix,
remixSetup,
remixMagic,
remixBrowser,
remixDev,
remixDevCli,
Expand Down

0 comments on commit ae5931d

Please sign in to comment.