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
This commit is contained in:
Anton Nikolaev
2020-04-01 02:49:46 -07:00
committed by Facebook GitHub Bot
parent 3bdfea387b
commit 5dc3ab4ea2
3 changed files with 21 additions and 6 deletions

View File

@@ -183,7 +183,7 @@
}, },
"scripts": { "scripts": {
"preinstall": "node scripts/prepare-watchman-config.js && yarn config set ignore-engines", "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-dist": "rimraf ../dist",
"rm-modules": "rimraf **/node_modules node_modules", "rm-modules": "rimraf **/node_modules node_modules",
"rm-temp": "rimraf $TMPDIR/jest* $TMPDIR/react-native-packager*", "rm-temp": "rimraf $TMPDIR/jest* $TMPDIR/react-native-packager*",
@@ -192,15 +192,15 @@
"rm-metro-cache": "rimraf $TMPDIR/metro-cache*", "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", "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", "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": "yarn dev-server --inspect=9229",
"start:break": "yarn dev-server --inspect-brk=9229", "start:break": "yarn dev-server --inspect-brk=9229",
"start:no-embedded-plugins": "yarn start --no-embedded-plugins", "start:no-embedded-plugins": "yarn start --no-embedded-plugins",
"build:babel-transformer": "cd babel-transformer && yarn build", "build:babel-transformer": "cd babel-transformer && yarn build",
"prebuild": "yarn build:babel-transformer && yarn rm-dist", "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", "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", "open-dist": "open ../dist/mac/Flipper.app --args --launcher=false",
"test-dist": "yarn build --mac && yarn open-dist --inspect=9229", "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", "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:eslint": "eslint . --ext .js,.ts,.tsx",
"lint:flow": "flow check", "lint:flow": "flow check",
"lint": "yarn lint:eslint && yarn lint:flow && yarn lint:tsc", "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", "bump-versions": "./ts-node scripts/bump-versions.ts",
"publish-packages": "cross-env TS_NODE_FILES=true node --require ts-node/register scripts/publish-packages.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" "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": { "optionalDependencies": {

7
desktop/ts-node Executable file
View File

@@ -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 "$@"

8
desktop/ts-node.cmd Normal file
View File

@@ -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 %*