From 490234a8cb6464811ee6e722ad4808305b923411 Mon Sep 17 00:00:00 2001 From: Simon Franzen Date: Thu, 31 Jan 2019 21:30:05 +0100 Subject: [PATCH 1/4] remove unneeded mocks --- __mocks__/fileMock.js | 1 - __mocks__/styleMock.js | 1 - 2 files changed, 2 deletions(-) delete mode 100644 __mocks__/fileMock.js delete mode 100644 __mocks__/styleMock.js diff --git a/__mocks__/fileMock.js b/__mocks__/fileMock.js deleted file mode 100644 index 0e56c5b..0000000 --- a/__mocks__/fileMock.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = 'test-file-stub' diff --git a/__mocks__/styleMock.js b/__mocks__/styleMock.js deleted file mode 100644 index 4ba52ba..0000000 --- a/__mocks__/styleMock.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = {} From 3f5868edeea9ea79dd9c84911bf04bb006af1bb1 Mon Sep 17 00:00:00 2001 From: Simon Franzen Date: Thu, 31 Jan 2019 21:30:36 +0100 Subject: [PATCH 2/4] smaller bundlesize + add npmignore --- .npmignore | 9 ++++++ package-lock.json | 31 +++++++++++++------ package.json | 20 +++++++------ webpack.config.js | 76 +++++++++++++++++++++++++++++++++++------------ 4 files changed, 99 insertions(+), 37 deletions(-) create mode 100644 .npmignore diff --git a/.npmignore b/.npmignore new file mode 100644 index 0000000..50d5249 --- /dev/null +++ b/.npmignore @@ -0,0 +1,9 @@ +coverage +lib +public +src +babel.config.js +CODE_OF_CONDUCT.md +CONTRIBUTING.md +styleguide.config.js +webpack.config.js diff --git a/package-lock.json b/package-lock.json index f58b8c6..624d1c9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { - "name": "@magicsoup-io/stock", - "version": "0.0.1", + "name": "@magicsoup.io/stock", + "version": "0.0.3", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -10815,7 +10815,8 @@ "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true }, "js-yaml": { "version": "3.12.1", @@ -11300,6 +11301,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, "requires": { "js-tokens": "^3.0.0 || ^4.0.0" } @@ -12188,7 +12190,8 @@ "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true }, "object-copy": { "version": "0.1.0", @@ -15826,6 +15829,7 @@ "version": "15.6.2", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", + "dev": true, "requires": { "loose-envify": "^1.3.1", "object-assign": "^4.1.1" @@ -19594,6 +19598,7 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/styled-system/-/styled-system-3.2.1.tgz", "integrity": "sha512-ag0Yp7UeVHHc3t+1uM3jvlljaZYzwqpbJ8hMrFvpaKfUd8xsB9JeQXLwMpEsz8iLx8Lz/+9j0coWFZjmw8MogQ==", + "dev": true, "requires": { "@babel/runtime": "^7.1.2", "prop-types": "^15.6.2" @@ -19603,6 +19608,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.2.0.tgz", "integrity": "sha512-oouEibCbHMVdZSDlJBO6bZmID/zA/G/Qx3H1d3rSNPTD+L8UNKvCat7aKWSJ74zYbm5zWGh0GQN0hKj8zYFTCg==", + "dev": true, "requires": { "regenerator-runtime": "^0.12.0" } @@ -19610,7 +19616,8 @@ "regenerator-runtime": { "version": "0.12.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", - "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==" + "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==", + "dev": true } } }, @@ -21240,14 +21247,14 @@ } }, "mem": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.0.0.tgz", - "integrity": "sha512-WQxG/5xYc3tMbYLXoXPm81ET2WDULiU5FxbuIoNbJqLOOI8zehXFdZuiUEgfdrU2mVB1pxBZUGlYORSrpuJreA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.1.0.tgz", + "integrity": "sha512-I5u6Q1x7wxO0kdOpYBB28xueHADYps5uty/zg936CiG8NTe5sJL8EjrCuLneuDW3PlMdZBGDIn8BirEVdovZvg==", "dev": true, "requires": { "map-age-cleaner": "^0.1.1", "mimic-fn": "^1.0.0", - "p-is-promise": "^1.1.0" + "p-is-promise": "^2.0.0" } }, "os-locale": { @@ -21261,6 +21268,12 @@ "mem": "^4.0.0" } }, + "p-is-promise": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.0.0.tgz", + "integrity": "sha512-pzQPhYMCAgLAKPWD2jC3Se9fEfrD9npNos0y150EeqZll7akhEgGhTW/slB6lHku8AvYGiJ+YJ5hfHKePPgFWg==", + "dev": true + }, "p-limit": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.1.0.tgz", diff --git a/package.json b/package.json index 676445c..f51bb6b 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@magicsoup.io/stock", "description": "The stock for our react component library soup. - 100% veggie & gluten-free", - "version": "0.0.1", + "version": "0.0.3", "author": "zauberware", "license": "MIT", "main": "dist/index.js", @@ -16,17 +16,15 @@ "email": "philipp@zauberware.com" } ], - "dependencies": { - "styled-system": "^3.2.1" - }, "scripts": { "start": "styleguidist server", "prepublishOnly": "npm run build", "styleguide": "styleguidist build", - "build": "webpack", + "build": "rm -rf dist/ && webpack", "lint": "eslint src", "jest": "jest --env=jsdom", - "test": "run-s lint jest" + "test": "run-s lint jest", + "size": "npx bundlesize" }, "devDependencies": { "@babel/preset-env": "^7.1.0", @@ -54,12 +52,16 @@ "react-test-renderer": "^16.6.0", "style-loader": "^0.23.1", "styled-components": "^4.1.3", + "styled-system": "^3.2.1", "webpack-cli": "^3.2.1" }, "peerDependencies": { + "react": "^16.6.0", + "react-dom": "^16.6.0", + "styled-system": "^3.2.1", "styled-components": ">=4.0.0" }, - "bugs": "https://github.com/magicsoup-io/stock/issues", + "bugs": "https://github.com/magicsoup-io/magicsoup-stock/issues", "keywords": [ "reactjs", "react", @@ -72,7 +74,7 @@ ], "repository": { "type": "git", - "url": "https://github.com/magicsoup-io/stock.git" + "url": "https://github.com/magicsoup-io/magicsoup-stock.git" }, "husky": { "hooks": { @@ -89,7 +91,7 @@ "bundlesize": [ { "path": "./dist/*.js", - "maxSize": "2 kB" + "maxSize": "1.8 kB" } ] } diff --git a/webpack.config.js b/webpack.config.js index 6a6b1ba..546b69f 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,29 +1,67 @@ -const path = require('path') +const webpack = require('webpack'); +const pkg = require('./package.json'); +const path = require('path'); +const libraryName= pkg.name; module.exports = { - entry: './src/index.js', + entry: path.join(__dirname, "./src/index.js"), mode: 'production', output: { - path: path.resolve(__dirname, 'dist'), + path: path.join(__dirname, './dist'), filename: 'index.js', - libraryTarget: 'commonjs2', + library: libraryName, + libraryTarget: 'umd', + publicPath: '/dist/', + umdNamedDefine: true, + }, + node: { + net: 'empty', + tls: 'empty', + dns: 'empty' }, module: { - rules: [ + rules : [ { - test: /\.js$/, - include: path.resolve(__dirname, 'src'), - exclude: /(node_modules|bower_components|dist|coverage|lib|public)/, - use: { - loader: 'babel-loader', - options: { - presets: ['@babel/preset-env'], - }, - }, - }, - ], + test: /\.(js|jsx)$/, + use: ["babel-loader"], + include: path.resolve(__dirname, "src"), + exclude: [/node_modules/, /coverage/, /lib/, /public/], + } + ] }, - externals: { - react: 'commonjs react', + resolve: { + alias: { + 'react': path.resolve(__dirname, './node_modules/react') , + 'react-dom': path.resolve(__dirname, './node_modules/react-dom'), + 'styled-system': path.resolve(__dirname, './node_modules/styled-system'), + 'styled-components': path.resolve(__dirname, './node_modules/styled-components') + } }, -} + externals: { + // Don't bundle react, react-dom, styled-system or styled-components + react: { + commonjs: "react", + commonjs2: "react", + amd: "React", + root: "React" + }, + "react-dom": { + commonjs: "react-dom", + commonjs2: "react-dom", + amd: "ReactDOM", + root: "ReactDOM" + }, + "styled-system": { + commonjs: "styled-system", + commonjs2: "styled-system", + amd: "styled-system", + root: "styled-system" + }, + "styled-components": { + commonjs: "styled-components", + commonjs2: "styled-components", + amd: "styled-components", + root: "styled-components" + } + } +}; \ No newline at end of file From 6d91ede24dcb2b96b09e2238eeb4002493724e49 Mon Sep 17 00:00:00 2001 From: Simon Franzen Date: Thu, 31 Jan 2019 21:34:14 +0100 Subject: [PATCH 3/4] test bundlesize in travisCI --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 0a85f24..518c1f6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,4 +5,5 @@ script: - npm install - npm run test - npm run styleguide - - npm run build \ No newline at end of file + - npm run build + - npm run size \ No newline at end of file From dae0b38557a05988896f53e05d69fb0a83800c37 Mon Sep 17 00:00:00 2001 From: Simon Franzen Date: Thu, 31 Jan 2019 22:08:48 +0100 Subject: [PATCH 4/4] add styled-system as dependency --- package-lock.json | 13 +++---------- package.json | 4 +++- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index 624d1c9..e5ab4d8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10815,8 +10815,7 @@ "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "js-yaml": { "version": "3.12.1", @@ -11301,7 +11300,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, "requires": { "js-tokens": "^3.0.0 || ^4.0.0" } @@ -12190,8 +12188,7 @@ "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "object-copy": { "version": "0.1.0", @@ -15829,7 +15826,6 @@ "version": "15.6.2", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", - "dev": true, "requires": { "loose-envify": "^1.3.1", "object-assign": "^4.1.1" @@ -19598,7 +19594,6 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/styled-system/-/styled-system-3.2.1.tgz", "integrity": "sha512-ag0Yp7UeVHHc3t+1uM3jvlljaZYzwqpbJ8hMrFvpaKfUd8xsB9JeQXLwMpEsz8iLx8Lz/+9j0coWFZjmw8MogQ==", - "dev": true, "requires": { "@babel/runtime": "^7.1.2", "prop-types": "^15.6.2" @@ -19608,7 +19603,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.2.0.tgz", "integrity": "sha512-oouEibCbHMVdZSDlJBO6bZmID/zA/G/Qx3H1d3rSNPTD+L8UNKvCat7aKWSJ74zYbm5zWGh0GQN0hKj8zYFTCg==", - "dev": true, "requires": { "regenerator-runtime": "^0.12.0" } @@ -19616,8 +19610,7 @@ "regenerator-runtime": { "version": "0.12.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", - "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==", - "dev": true + "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==" } } }, diff --git a/package.json b/package.json index f51bb6b..96f7eb6 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,9 @@ "test": "run-s lint jest", "size": "npx bundlesize" }, + "dependencies": { + "styled-system": "^3.2.1" + }, "devDependencies": { "@babel/preset-env": "^7.1.0", "@babel/preset-react": "^7.0.0", @@ -52,7 +55,6 @@ "react-test-renderer": "^16.6.0", "style-loader": "^0.23.1", "styled-components": "^4.1.3", - "styled-system": "^3.2.1", "webpack-cli": "^3.2.1" }, "peerDependencies": {