mirror of
https://github.com/facebook/react.git
synced 2025-11-01 09:12:30 +00:00
[forgive] Add build scripts
Adds basic build scripts.
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
**/node_modules
|
||||
client
|
||||
server
|
||||
scripts
|
||||
@@ -35,23 +35,23 @@
|
||||
]
|
||||
},
|
||||
"scripts": {
|
||||
"compile": "yarn run esbuild-base -- --sourcemap",
|
||||
"build": "yarn run compile",
|
||||
"compile": "rimraf dist && concurrently -n server,client \"scripts/build.mjs -t server\" \"scripts/build.mjs -t client\"",
|
||||
"dev": "yarn run package && yarn run install-ext",
|
||||
"esbuild-base": "esbuild ./src/extension.ts --bundle --outfile=dist/extension.js --external:vscode --format=cjs --platform=node",
|
||||
"install-ext": "code --install-extension vscode-react-compiler-0.0.1.vsix",
|
||||
"lint": "eslint src --ext ts",
|
||||
"package": "vsce package",
|
||||
"install-ext": "code --install-extension react-forgive-0.0.0.vsix",
|
||||
"lint": "echo 'no tests'",
|
||||
"package": "rm -f react-forgive-0.0.0.vsix && vsce package --yarn",
|
||||
"postinstall": "cd client && yarn install && cd ../server && yarn install && cd ..",
|
||||
"pretest": "yarn run compile && yarn run lint",
|
||||
"test": "echo 'no tests'",
|
||||
"test-compile": "tsc -p ./",
|
||||
"vscode:prepublish": "yarn run esbuild-base -- --minify",
|
||||
"watch": "yarn run esbuild-base -- --sourcemap --watch"
|
||||
"vscode:prepublish": "yarn run compile",
|
||||
"watch": "scripts/build.mjs --watch"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@eslint/js": "^9.13.0",
|
||||
"@types/node": "^20",
|
||||
"eslint": "^9.13.0",
|
||||
"typescript-eslint": "^8.16.0"
|
||||
"typescript-eslint": "^8.16.0",
|
||||
"yargs": "^17.7.2"
|
||||
}
|
||||
}
|
||||
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
/**
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
import * as esbuild from 'esbuild';
|
||||
import yargs from 'yargs';
|
||||
import * as Server from './server.mjs';
|
||||
import * as Client from './client.mjs';
|
||||
import path from 'path';
|
||||
import {fileURLToPath} from 'url';
|
||||
|
||||
const IS_DEV = process.env.NODE_ENV === 'development';
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = path.dirname(__filename);
|
||||
|
||||
const argv = yargs(process.argv.slice(2))
|
||||
.choices('t', ['client', 'server'])
|
||||
.options('w', {
|
||||
alias: 'watch',
|
||||
default: false,
|
||||
type: 'boolean',
|
||||
})
|
||||
.parse();
|
||||
|
||||
async function main() {
|
||||
if (argv.w) {
|
||||
const serverCtx = await esbuild.context(Server.config);
|
||||
const clientCtx = await esbuild.context(Client.config);
|
||||
await Promise.all([serverCtx.watch(), clientCtx.watch()]);
|
||||
console.log('watching for changes...');
|
||||
} else {
|
||||
switch (argv.t) {
|
||||
case 'server': {
|
||||
await esbuild.build({
|
||||
sourcemap: IS_DEV,
|
||||
minify: IS_DEV === false,
|
||||
...Server.config,
|
||||
});
|
||||
break;
|
||||
}
|
||||
case 'client': {
|
||||
await esbuild.build({
|
||||
sourcemap: IS_DEV,
|
||||
minify: IS_DEV === false,
|
||||
...Client.config,
|
||||
});
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
main();
|
||||
@@ -0,0 +1,39 @@
|
||||
/**
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
import path from 'path';
|
||||
import {fileURLToPath} from 'url';
|
||||
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = path.dirname(__filename);
|
||||
|
||||
export const entryPoint = path.join(__dirname, '../client/src/extension.ts');
|
||||
export const outfile = path.join(__dirname, '../dist/extension.js');
|
||||
export const config = {
|
||||
entryPoints: [entryPoint],
|
||||
outfile,
|
||||
bundle: true,
|
||||
external: ['vscode'],
|
||||
format: 'cjs',
|
||||
platform: 'node',
|
||||
banner: {
|
||||
js: `/**
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
* @lightSyntaxTransform
|
||||
* @noflow
|
||||
* @nolint
|
||||
* @preventMunge
|
||||
* @preserve-invariant-messages
|
||||
*/
|
||||
|
||||
`,
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,39 @@
|
||||
/**
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
import path from 'path';
|
||||
import {fileURLToPath} from 'url';
|
||||
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = path.dirname(__filename);
|
||||
|
||||
export const entryPoint = path.join(__dirname, '../server/src/index.ts');
|
||||
export const outfile = path.join(__dirname, '../dist/extension.js');
|
||||
export const config = {
|
||||
entryPoints: [entryPoint],
|
||||
outfile,
|
||||
bundle: true,
|
||||
external: ['vscode'],
|
||||
format: 'cjs',
|
||||
platform: 'node',
|
||||
banner: {
|
||||
js: `/**
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
* @lightSyntaxTransform
|
||||
* @noflow
|
||||
* @nolint
|
||||
* @preventMunge
|
||||
* @preserve-invariant-messages
|
||||
*/
|
||||
|
||||
`,
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user