diff --git a/npm-scripts/move-babel-to-dependencies.js b/npm-scripts/move-babel-to-dependencies.js new file mode 100644 index 00000000..5680c7ce --- /dev/null +++ b/npm-scripts/move-babel-to-dependencies.js @@ -0,0 +1,19 @@ +const fs = require('fs'); + +const packageJSON = JSON.parse(fs.readFileSync('package.json', 'utf8')); + +const dependencyKeys = Object.keys(packageJSON.dependencies); +dependencyKeys.filter(key => key.startsWith('babel')).forEach(key => { + packageJSON.devDependencies[key] = packageJSON.dependencies[key]; +}); +packageJSON.dependencies = dependencyKeys + .filter(key => !key.startsWith('babel')) + .reduce( + (result, key) => { + result[key] = packageJSON.dependencies[key]; + return result; + }, + {} + ); + +fs.writeFileSync('package.json', JSON.stringify(packageJSON, null, ' ') + '\n', 'utf8'); diff --git a/package.json b/package.json index 8b078035..39487aa8 100644 --- a/package.json +++ b/package.json @@ -20,11 +20,14 @@ "babel": "rimraf lib && babel src/ -d lib/", "dist": "webpack && webpack --config=webpack.config.minified.js", "examples": "webpack-dev-server --config examples/webpack.config.js --no-info --content-base examples/", + "deps-fix": "babel-node ./npm-scripts/move-babel-to-dependencies.js", + "deps-restore": "git checkout package.json", "flow": "node -e \"process.exit(process.platform === 'win32' ? 0 : 1)\" || flow check", "lib": "npm run babel && rimraf lib/__tests__ lib/__mocks__", "lint": "eslint src && npm run flow", "postinstall": "cd lib || npm run lib", - "prepublish": "npm test && npm run lint && npm run lib && npm run dist", + "prepublish": "npm test && npm run lint && npm run lib && npm run dist && npm run deps-fix", + "postpublish": "npm run deps-restore", "start": "./node_modules/.bin/babel-node examples/server.js", "test": "karma start", "test-coverage": "karma start karma.conf.coverage.js",