diff --git a/.gitignore b/.gitignore index ce434b6..83d8e95 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,8 @@ npm-debug.log node_modules -.tmp \ No newline at end of file +.tmp + +site/build + +.idea \ No newline at end of file diff --git a/site/package.json b/site/package.json new file mode 100644 index 0000000..bc9d3cc --- /dev/null +++ b/site/package.json @@ -0,0 +1,18 @@ +{ + "name": "node-package-manager-benchmark", + "version": "0.1.0", + "private": true, + "devDependencies": { + "react-scripts": "0.8.2" + }, + "dependencies": { + "react": "^15.4.1", + "react-dom": "^15.4.1" + }, + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test --env=jsdom", + "eject": "react-scripts eject" + } +} diff --git a/site/public/favicon.ico b/site/public/favicon.ico new file mode 100644 index 0000000..5c125de Binary files /dev/null and b/site/public/favicon.ico differ diff --git a/site/public/index.html b/site/public/index.html new file mode 100644 index 0000000..5afc891 --- /dev/null +++ b/site/public/index.html @@ -0,0 +1,33 @@ + + + + + + + + + React App + + +
+ + + diff --git a/site/src/App.js b/site/src/App.js new file mode 100644 index 0000000..fc1f337 --- /dev/null +++ b/site/src/App.js @@ -0,0 +1,16 @@ +import React, {Component} from 'react'; +import BenchmarkResults from './component/BenchmarkResults'; + +import stats from './stats.json' + +class App extends Component { + render() { + return ( +
+ +
+ ); + } +} + +export default App; diff --git a/site/src/component/BenchmarkResults.js b/site/src/component/BenchmarkResults.js new file mode 100644 index 0000000..81cfea0 --- /dev/null +++ b/site/src/component/BenchmarkResults.js @@ -0,0 +1,53 @@ +import React from 'react'; + +const BenchmarkResults = ({data}) => { + return ( +
+

Node package manager benchmark

+
+

This benchmark compares the performance of npm, pnpm and yarn. +

+ {data.map(singleBenchmark => )} +
+ ) +}; + +const TemplateBenchmarkResult = ({data}) => { + return ( +
+

{data.framework}

+
+

The app's package.json here

+ + + + + + + + + + + + + + + + + + + + + + + + + +
CommandTime in msSize in byte
{data.commandNpm}{data.timeNpm}{data.sizeNpm}
{data.commandYarn}{data.timeYarn}{data.sizePnpm}
{data.commandPnpm}{data.timePnpm}{data.sizePnpm}
+
+
+ ) +}; + +export default BenchmarkResults; diff --git a/site/src/index.js b/site/src/index.js new file mode 100644 index 0000000..5f2ffc9 --- /dev/null +++ b/site/src/index.js @@ -0,0 +1,10 @@ +import React from 'react'; +import ReactDOM from 'react-dom'; +import App from './App'; + +ReactDOM.render( +
+ +
, + document.getElementById('root') +); diff --git a/site/src/stats.json b/site/src/stats.json new file mode 100644 index 0000000..78fca95 --- /dev/null +++ b/site/src/stats.json @@ -0,0 +1,44 @@ +[ + { + "id": 0, + "framework": "React app", + "commandNpm": "npm intall", + "commandYarn": "yarn", + "commandPnpm": "pnpm install", + "timeNpm": "82411", + "timeYarn": "32462", + "timePnpm": "22350", + "sizeNpm": "96825002", + "sizeYarn": "175713152", + "sizePnpm": "91086578", + "packageUrl": "https://github.com/zkochan/node-package-manager-benchmark/blob/master/fixtures/react-app/package.json" + }, + { + "id": 1, + "framework": "Ember app", + "commandNpm": "npm intall", + "commandYarn": "yarn", + "commandPnpm": "pnpm install", + "timeNpm": "166925", + "timeYarn": "19426", + "timePnpm": "18240", + "sizeNpm": "105615718", + "sizeYarn": "120189948", + "sizePnpm": "102686669", + "packageUrl": "https://github.com/zkochan/node-package-manager-benchmark/blob/master/fixtures/ember-quickstart/package.json" + }, + { + "id": 2, + "framework": "Angular app", + "commandNpm": "npm intall", + "commandYarn": "yarn", + "commandPnpm": "pnpm install", + "timeNpm": "85625", + "timeYarn": "14376", + "timePnpm": "9262", + "sizeNpm": "81464712", + "sizeYarn": "87297812", + "sizePnpm": "77677097", + "packageUrl": "" + } +]