From 187534a1c7a705f0c857c75422f52a10bf859498 Mon Sep 17 00:00:00 2001 From: Daniel Almaguer Date: Thu, 4 Jan 2018 14:33:56 -0600 Subject: [PATCH] chore(build): makes redux a peerDependency BREAKING CHANGE: we aren't including redux to our umd build anymore. Also added back the umd (dist) build since we still need to support it, but it will be .gitignored Added some bower support workaround in Readme --- .gitignore | 1 + README.md | 16 ++++++++++++---- package.json | 20 +++++++++++++------- rollup.config.js | 13 ++++++++++--- 4 files changed, 36 insertions(+), 14 deletions(-) diff --git a/.gitignore b/.gitignore index c3152f4..9906396 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ npm-debug.log .DS_Store lib es +umd coverage *.tgz examples/**/dist diff --git a/README.md b/README.md index 095593f..60dcf15 100644 --- a/README.md +++ b/README.md @@ -30,18 +30,26 @@ npm install --save ng-redux ``` #### bower (deprecated) -**Warning!** Bower recommends using yarn and webpack as an alternative for new projects. `ng-redux` will no longer version compiled versions of code. The latest version of ng-redux supported for bower use is `3.5.2` +**Warning!** Starting with 4.0.0, we will no longer be publishing new releases on Bower. You can continue using Bower for old releases, or point your bower config to the UMD build hosted on unpkg that mirrors our npm releases. -```js -bower install --save ng-redux#3.5.2 +```json +{ + "dependencies": { + "ng-redux": "https://unpkg.com/ng-redux/umd/ng-redux.min.js" + } +} ``` Add the following script tag to your html: - ```html ``` +Or directly from unpkg +```html + +``` + ## Quick Start #### Initialization diff --git a/package.json b/package.json index 8b29932..c90d5fe 100644 --- a/package.json +++ b/package.json @@ -9,17 +9,20 @@ "lib", "es", "src", + "umd", "index.d.ts" ], "scripts": { - "clean": "rimraf lib dist es", - "commitmsg": "commitlint -e $GIT_PARAMS", + "build": "npm run build:commonjs && npm run build:es && npm run build:umd && npm run build:umd:min", "build:commonjs": "cross-env NODE_ENV=cjs rollup -c -o lib/ng-redux.js", "build:es": "cross-env NODE_ENV=es rollup -c -o es/ng-redux.js", - "build": "npm run build:commonjs && npm run build:es", - "test": "cross-env NODE_ENV=test mocha --compilers js:babel-register --recursive", + "build:umd": "cross-env NODE_ENV=development rollup -c -o umd/ng-redux.js", + "build:umd:min": "cross-env NODE_ENV=production rollup -c -o umd/ng-redux.min.js", + "clean": "rimraf lib umd es", + "commitmsg": "commitlint -e $GIT_PARAMS", "prepublish": "npm run clean && npm test && npm run build", - "prerelease": "npm run prepublish" + "prerelease": "npm run prepublish", + "test": "cross-env NODE_ENV=test mocha --compilers js:babel-register --recursive" }, "repository": { "type": "git", @@ -41,6 +44,7 @@ "expect": "^1.20.2", "husky": "^0.14.3", "mocha": "^3.5.0", + "redux": "^3.7.2", "rimraf": "^2.6.1", "rollup": "^0.47.4", "rollup-plugin-babel": "^3.0.2", @@ -58,7 +62,9 @@ "lodash.isfunction": "^3.0.8", "lodash.isobject": "^3.0.2", "lodash.isplainobject": "^4.0.6", - "lodash.map": "^4.6.0", - "redux": "^3.7.2" + "lodash.map": "^4.6.0" + }, + "peerDependencies": { + "redux": "^3.0.0" } } diff --git a/rollup.config.js b/rollup.config.js index 7dc80be..430472f 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -3,7 +3,7 @@ import commonjs from 'rollup-plugin-commonjs'; import nodeResolve from 'rollup-plugin-node-resolve'; import replace from 'rollup-plugin-replace'; import uglify from 'rollup-plugin-uglify'; -import { dependencies } from './package.json' +import { dependencies, devDependencies } from './package.json' const env = process.env.NODE_ENV; const config = { @@ -11,7 +11,10 @@ const config = { plugins: [], }; -const externals = Object.keys(dependencies).join('|'); +const externals = [ + ...Object.keys(dependencies), + ...Object.keys(devDependencies), +].join('|'); if (env === 'es' || env === 'cjs') { config.format = env; @@ -28,6 +31,10 @@ if (env === 'development' || env === 'production') { config.format = 'umd'; config.moduleName = 'NgRedux'; config.sourceMap = true; + config.external = ['redux']; + config.globals = { + redux: 'Redux', + }; config.plugins.push( replace({ 'process.env.NODE_ENV': JSON.stringify(env) @@ -38,7 +45,7 @@ if (env === 'development' || env === 'production') { commonjs(), babel({ runtimeHelpers: true, - exclude: 'node_modules/**' + exclude: 'node_modules/**', }) ) }