From 5dc3ab4ea247a81429a9db087b4b893e2a25da52 Mon Sep 17 00:00:00 2001 From: Anton Nikolaev Date: Wed, 1 Apr 2020 02:49:46 -0700 Subject: [PATCH] Faster script execution by ts-node Summary: It takes few seconds for ts-node to start even for small scripts. TS_NODE_TRANSPILE_ONLY env var makes loading much faster ~100-200ms. Reviewed By: mweststrate Differential Revision: D20769639 fbshipit-source-id: 9b09a4e128e6b9c9651de98d8193b1d3a8f42b64 --- desktop/package.json | 12 ++++++------ desktop/ts-node | 7 +++++++ desktop/ts-node.cmd | 8 ++++++++ 3 files changed, 21 insertions(+), 6 deletions(-) create mode 100755 desktop/ts-node create mode 100644 desktop/ts-node.cmd diff --git a/desktop/package.json b/desktop/package.json index e18c28156..4898662da 100644 --- a/desktop/package.json +++ b/desktop/package.json @@ -183,7 +183,7 @@ }, "scripts": { "preinstall": "node scripts/prepare-watchman-config.js && yarn config set ignore-engines", - "postinstall": "cross-env TS_NODE_FILES=true node --require ts-node/register scripts/yarn-install.ts && patch-package", + "postinstall": "./ts-node scripts/yarn-install.ts && patch-package", "rm-dist": "rimraf ../dist", "rm-modules": "rimraf **/node_modules node_modules", "rm-temp": "rimraf $TMPDIR/jest* $TMPDIR/react-native-packager*", @@ -192,15 +192,15 @@ "rm-metro-cache": "rimraf $TMPDIR/metro-cache*", "reset": "yarn rm-dist && yarn rm-temp && yarn rm-metro-cache && yarn cache clean && yarn rm-bundle && yarn rm-watches && yarn rm-modules", "predev-server": "yarn build:babel-transformer", - "dev-server": "cross-env NODE_ENV=development TS_NODE_FILES=true node --require ts-node/register scripts/start-dev-server.ts", + "dev-server": "cross-env NODE_ENV=development ./ts-node scripts/start-dev-server.ts", "start": "yarn dev-server --inspect=9229", "start:break": "yarn dev-server --inspect-brk=9229", "start:no-embedded-plugins": "yarn start --no-embedded-plugins", "build:babel-transformer": "cd babel-transformer && yarn build", "prebuild": "yarn build:babel-transformer && yarn rm-dist", - "build": "cross-env NODE_ENV=production TS_NODE_FILES=true node --require ts-node/register scripts/build-release.ts $@", + "build": "cross-env NODE_ENV=production ./ts-node scripts/build-release.ts $@", "prebuild-headless": "yarn build:babel-transformer", - "build-headless": "cross-env NODE_ENV=production TS_NODE_FILES=true node --require ts-node/register scripts/build-headless.ts $@", + "build-headless": "cross-env NODE_ENV=production ./ts-node scripts/build-headless.ts $@", "open-dist": "open ../dist/mac/Flipper.app --args --launcher=false", "test-dist": "yarn build --mac && yarn open-dist --inspect=9229", "test-dist:no-embedded-plugins": "yarn build --mac --no-embedded-plugins && yarn open-dist --inspect=9229", @@ -213,8 +213,8 @@ "lint:eslint": "eslint . --ext .js,.ts,.tsx", "lint:flow": "flow check", "lint": "yarn lint:eslint && yarn lint:flow && yarn lint:tsc", - "bump-versions": "cross-env TS_NODE_FILES=true node --require ts-node/register scripts/bump-versions.ts", - "publish-packages": "cross-env TS_NODE_FILES=true node --require ts-node/register scripts/publish-packages.ts", + "bump-versions": "./ts-node scripts/bump-versions.ts", + "publish-packages": "./ts-node scripts/publish-packages.ts", "everything": "yarn reset && yarn install && yarn lint && yarn test && yarn test-electron && yarn build --mac --mac-dmg --win --linux && yarn build-headless --mac --linux && yarn start" }, "optionalDependencies": { diff --git a/desktop/ts-node b/desktop/ts-node new file mode 100755 index 000000000..96a27d770 --- /dev/null +++ b/desktop/ts-node @@ -0,0 +1,7 @@ +#!/bin/bash +# Copyright (c) Facebook, Inc. and its affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +env TS_NODE_TRANSPILE_ONLY=true node --require ts-node/register "$@" diff --git a/desktop/ts-node.cmd b/desktop/ts-node.cmd new file mode 100644 index 000000000..6f2abc271 --- /dev/null +++ b/desktop/ts-node.cmd @@ -0,0 +1,8 @@ +@REM Copyright (c) Facebook, Inc. and its affiliates. +@REM +@REM This source code is licensed under the MIT license found in the +@REM LICENSE file in the root directory of this source tree. + +@echo off + +set TS_NODE_TRANSPILE_ONLY=true & node --require ts-node/register %*