From 45d1818108dc7437f0c4b127f99f85b0f21dfc08 Mon Sep 17 00:00:00 2001 From: Raphael Amorim Date: Sun, 3 Jun 2018 16:50:44 -0300 Subject: [PATCH] all: adjust build for production/development and add support devTools --- package.json | 3 +-- packages/react-tv/index.js | 5 +++++ packages/react-tv/package.json | 5 +++-- packages/react-tv/renderer/ReactTVFiberEntry.js | 7 +++++++ .../renderer/__tests__/ReactTVFindDOMNode-test.js | 4 ++-- .../renderer/types/ReactFiberReconciler.js.flow | 1 + scripts/rollup/build.js | 14 +++++++------- 7 files changed, 26 insertions(+), 13 deletions(-) create mode 100644 packages/react-tv/index.js diff --git a/package.json b/package.json index a05fa83..4e319b6 100644 --- a/package.json +++ b/package.json @@ -11,9 +11,8 @@ "linc": "node ./scripts/eslint/only-changed.js", "benchmark-memory": "node scripts/benchmark/memory.js", "build": "node scripts/rollup/build.js", - "build:prod": "cross-env NODE_ENV=PROD node scripts/rollup/build.js", "build:stats": "node scripts/rollup/stats.js", - "prepublishOnly": "yarn test && yarn build:prod", + "prepublishOnly": "yarn test && yarn build", "prettier:stat": "node ./scripts/prettier/index.js", "clean-node-modules": "find ./ -name 'node_modules' -exec rm -rf '{}' +", "test": "yarn lint && yarn prettier:stat && yarn flow && yarn jest:ci", diff --git a/packages/react-tv/index.js b/packages/react-tv/index.js new file mode 100644 index 0000000..680687e --- /dev/null +++ b/packages/react-tv/index.js @@ -0,0 +1,5 @@ +if (process.env.NODE_ENV === 'production') { + module.exports = require('./dist/react-tv.production.js'); +} else { + module.exports = require('./dist/react-tv.development.js'); +} diff --git a/packages/react-tv/package.json b/packages/react-tv/package.json index 4cc54cc..1bd6dcd 100644 --- a/packages/react-tv/package.json +++ b/packages/react-tv/package.json @@ -2,9 +2,10 @@ "name": "react-tv", "version": "0.3.4", "description": "React renderer for low memory applications", - "main": "dist/react-tv.production.js", + "main": "index.js", "files": [ - "dist/" + "dist/", + "index.js" ], "repository": { "type": "git", diff --git a/packages/react-tv/renderer/ReactTVFiberEntry.js b/packages/react-tv/renderer/ReactTVFiberEntry.js index e5207be..c30f81e 100644 --- a/packages/react-tv/renderer/ReactTVFiberEntry.js +++ b/packages/react-tv/renderer/ReactTVFiberEntry.js @@ -271,6 +271,13 @@ const ReactTVRenderer = { } ReactTVFiberRenderer.updateContainer((element: any), root, null, callback); + + ReactTVFiberRenderer.injectIntoDevTools({ + bundleType: (process.env.NODE_ENV === 'production') ? 0 : 1, + rendererPackageName: 'ReactTV', + findHostInstanceByFiber: ReactTVFiberRenderer.findHostInstance + }) + return ReactTVFiberRenderer.getPublicRootInstance(root); }, findDOMNode(componentOrElement: React$Element) { diff --git a/packages/react-tv/renderer/__tests__/ReactTVFindDOMNode-test.js b/packages/react-tv/renderer/__tests__/ReactTVFindDOMNode-test.js index 086b5ba..e210f78 100644 --- a/packages/react-tv/renderer/__tests__/ReactTVFindDOMNode-test.js +++ b/packages/react-tv/renderer/__tests__/ReactTVFindDOMNode-test.js @@ -9,11 +9,11 @@ describe('findDOMNode', () => { class Sure extends React.Component { componentDidMount() { - expect(findDOMNode(this)).toEqual(expectedNode); + expect(findDOMNode(this.input)).toEqual(expectedNode); } render() { - return

Sure!

; + return

this.input = node}>Sure!

; } } diff --git a/packages/react-tv/renderer/types/ReactFiberReconciler.js.flow b/packages/react-tv/renderer/types/ReactFiberReconciler.js.flow index b8cc240..7ad8c85 100644 --- a/packages/react-tv/renderer/types/ReactFiberReconciler.js.flow +++ b/packages/react-tv/renderer/types/ReactFiberReconciler.js.flow @@ -78,6 +78,7 @@ export type HostConfig = { scheduleAnimationCallback(callback : () => void) : number | void, scheduleDeferredCallback(callback : (deadline : Deadline) => void) : number | void, + prepareForCommit() : void, resetAfterCommit() : void, useSyncScheduling ?: boolean, diff --git a/scripts/rollup/build.js b/scripts/rollup/build.js index c72e5c7..216cd54 100644 --- a/scripts/rollup/build.js +++ b/scripts/rollup/build.js @@ -14,10 +14,10 @@ const packagePath = 'packages/react-tv'; let tasks = []; -function stripEnvVariables(production) { +function stripEnvVariables(env) { return { - __DEV__: production ? 'false' : 'true', - 'process.env.NODE_ENV': production ? "'production'" : "'development'", + __DEV__: env === 'production' ? 'false' : 'true', + 'process.env.NODE_ENV': "'" + env + "'", }; } @@ -29,7 +29,7 @@ function createBundle({entryPath, bundleType, destName}) { let plugins = [ flow(), - replace(stripEnvVariables()), + replace(stripEnvVariables(bundleType)), babel({ exclude: 'node_modules/**', externalHelpers: false, @@ -44,7 +44,7 @@ function createBundle({entryPath, bundleType, destName}) { }), ]; - if (bundleType.indexOf('PROD') >= 0) { + if (bundleType.indexOf('production') >= 0) { plugins = plugins.concat([optimizeJs(), uglify()]); } @@ -65,13 +65,13 @@ function createBundle({entryPath, bundleType, destName}) { createBundle({ entryPath: `${packagePath}/ReactTVEntry.js`, - bundleType: 'PROD', + bundleType: 'production', destName: 'react-tv.production.js', }); createBundle({ entryPath: `${packagePath}/ReactTVEntry.js`, - bundleType: 'DEV', + bundleType: 'development', destName: 'react-tv.development.js', });