optimized bundle size and dependencies
This commit is contained in:
10
package.json
10
package.json
@ -5,7 +5,8 @@
|
|||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"clean": "rimraf dist",
|
"clean": "rimraf dist",
|
||||||
"build:webpack": "cross-env NODE_ENV=production webpack --config webpack.config.prod.js --progress --colors",
|
"build:webpack": "cross-env NODE_ENV=production webpack --config webpack.config.prod.js --progress",
|
||||||
|
"build:analyze": "cross-env NODE_ENV=production webpack --config webpack.config.prod.js --json | webpack-bundle-size-analyzer",
|
||||||
"build": "npm run clean && npm run build:webpack",
|
"build": "npm run clean && npm run build:webpack",
|
||||||
"start": "cross-env NODE_ENV=development DEBUG=1 ./node_modules/.bin/nodemon --watch server index.js",
|
"start": "cross-env NODE_ENV=development DEBUG=1 ./node_modules/.bin/nodemon --watch server index.js",
|
||||||
"lint": "eslint src"
|
"lint": "eslint src"
|
||||||
@ -43,7 +44,6 @@
|
|||||||
"koa-mount": "^2.0.0",
|
"koa-mount": "^2.0.0",
|
||||||
"koa-router": "^7.0.1",
|
"koa-router": "^7.0.1",
|
||||||
"koa-sendfile": "^2.0.0",
|
"koa-sendfile": "^2.0.0",
|
||||||
"koa-webpack-dev-middleware": "^1.2.0",
|
|
||||||
"localenv": "^0.2.2",
|
"localenv": "^0.2.2",
|
||||||
"pg": "^4.5.3",
|
"pg": "^4.5.3",
|
||||||
"pg-hstore": "^2.3.2",
|
"pg-hstore": "^2.3.2",
|
||||||
@ -75,7 +75,6 @@
|
|||||||
"koa-convert": "^1.2.0",
|
"koa-convert": "^1.2.0",
|
||||||
"koa-webpack-dev-middleware": "^1.2.0",
|
"koa-webpack-dev-middleware": "^1.2.0",
|
||||||
"koa-webpack-hot-middleware": "^1.0.3",
|
"koa-webpack-hot-middleware": "^1.0.3",
|
||||||
"localforage": "^1.4.0",
|
|
||||||
"lodash": "^4.3.0",
|
"lodash": "^4.3.0",
|
||||||
"marked": "^0.3.5",
|
"marked": "^0.3.5",
|
||||||
"node-dev": "^3.1.0",
|
"node-dev": "^3.1.0",
|
||||||
@ -92,15 +91,12 @@
|
|||||||
"redux": "^3.3.1",
|
"redux": "^3.3.1",
|
||||||
"redux-logger": "^2.6.1",
|
"redux-logger": "^2.6.1",
|
||||||
"redux-persist": "^3.0.1",
|
"redux-persist": "^3.0.1",
|
||||||
"redux-storage": "^4.0.0",
|
|
||||||
"redux-storage-engine-localstorage": "^1.0.0",
|
|
||||||
"redux-thunk": "^2.0.1",
|
"redux-thunk": "^2.0.1",
|
||||||
"sass-loader": "^3.2.0",
|
"sass-loader": "^3.2.0",
|
||||||
"style-loader": "^0.13.0",
|
"style-loader": "^0.13.0",
|
||||||
"sw-toolbox": "^3.1.1",
|
"sw-toolbox": "^3.1.1",
|
||||||
"to-markdown": "^2.0.1",
|
"to-markdown": "^2.0.1",
|
||||||
"url-loader": "^0.5.7",
|
"url-loader": "^0.5.7",
|
||||||
"webpack": "^1.12.12",
|
"webpack": "^1.12.12"
|
||||||
"webpack-koa-hot-middleware": "^0.1.2"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import _ from 'lodash';
|
import _xor from 'lodash/xor';
|
||||||
|
import _last from 'lodash/last';
|
||||||
import { combineReducers } from 'redux';
|
import { combineReducers } from 'redux';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
@ -14,11 +15,11 @@ const activeEditors = (state = [ActiveEditors.MARKDOWN, ActiveEditors.TEXT], act
|
|||||||
switch (action.type) {
|
switch (action.type) {
|
||||||
case TOGGLE_EDITORS: {
|
case TOGGLE_EDITORS: {
|
||||||
// TODO: A rewrite would be nice
|
// TODO: A rewrite would be nice
|
||||||
const newState = _.xor(state, [action.toggledEditor]);
|
const newState = _xor(state, [action.toggledEditor]);
|
||||||
if (newState.length > 0) {
|
if (newState.length > 0) {
|
||||||
return newState;
|
return newState;
|
||||||
} else {
|
} else {
|
||||||
return _.xor([ActiveEditors.MARKDOWN, ActiveEditors.TEXT], [action.toggledEditor]);
|
return _xor([ActiveEditors.MARKDOWN, ActiveEditors.TEXT], [action.toggledEditor]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
@ -56,7 +57,7 @@ const textDefaultState = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const text = (state = textDefaultState, action) => {
|
const text = (state = textDefaultState, action) => {
|
||||||
const lastRevision = _.last(state.revisions);
|
const lastRevision = _last(state.revisions);
|
||||||
|
|
||||||
switch (action.type) {
|
switch (action.type) {
|
||||||
case UPDATE_TEXT: {
|
case UPDATE_TEXT: {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import _ from 'lodash';
|
import _map from 'lodash/map';
|
||||||
|
|
||||||
import auth from './auth';
|
import auth from './auth';
|
||||||
import constants from '../constants';
|
import constants from '../constants';
|
||||||
@ -84,7 +84,7 @@ class ApiClient {
|
|||||||
// Helpers
|
// Helpers
|
||||||
|
|
||||||
constructQueryString = (data) => {
|
constructQueryString = (data) => {
|
||||||
return _.map(data, (v, k) => {
|
return _map(data, (v, k) => {
|
||||||
return `${encodeURIComponent(k)}=${encodeURIComponent(v)}`;
|
return `${encodeURIComponent(k)}=${encodeURIComponent(v)}`;
|
||||||
}).join('&');
|
}).join('&');
|
||||||
};
|
};
|
||||||
|
@ -6,8 +6,6 @@ import { createStore, applyMiddleware } from 'redux';
|
|||||||
import { routerMiddleware } from 'react-router-redux';
|
import { routerMiddleware } from 'react-router-redux';
|
||||||
import { persistStore, autoRehydrate } from 'redux-persist';
|
import { persistStore, autoRehydrate } from 'redux-persist';
|
||||||
import thunkMiddleware from 'redux-thunk';
|
import thunkMiddleware from 'redux-thunk';
|
||||||
import * as storage from 'redux-storage';
|
|
||||||
import createEngine from 'redux-storage-engine-localstorage';
|
|
||||||
import createLogger from 'redux-logger';
|
import createLogger from 'redux-logger';
|
||||||
import History from 'utils/History';
|
import History from 'utils/History';
|
||||||
|
|
||||||
@ -18,19 +16,16 @@ import reducers from 'reducers';
|
|||||||
import 'utils/base-styles.scss';
|
import 'utils/base-styles.scss';
|
||||||
|
|
||||||
import Home from 'scenes/Home';
|
import Home from 'scenes/Home';
|
||||||
import App from 'scenes/App';
|
// import App from 'scenes/App';
|
||||||
import Dashboard from 'scenes/Dashboard';
|
import Dashboard from 'scenes/Dashboard';
|
||||||
import SlackAuth from 'scenes/SlackAuth';
|
import SlackAuth from 'scenes/SlackAuth';
|
||||||
|
|
||||||
// Redux
|
// Redux
|
||||||
|
|
||||||
const reducer = storage.reducer(reducers);
|
|
||||||
const loggerMiddleware = createLogger();
|
const loggerMiddleware = createLogger();
|
||||||
const routerMiddlewareWithHistory = routerMiddleware(History);
|
const routerMiddlewareWithHistory = routerMiddleware(History);
|
||||||
|
|
||||||
const createStoreWithMiddleware = (createStore);
|
const store = createStore(reducers, applyMiddleware(
|
||||||
|
|
||||||
const store = createStore(reducer, applyMiddleware(
|
|
||||||
thunkMiddleware,
|
thunkMiddleware,
|
||||||
routerMiddlewareWithHistory,
|
routerMiddlewareWithHistory,
|
||||||
loggerMiddleware,
|
loggerMiddleware,
|
||||||
|
@ -7,7 +7,6 @@ const developmentWebpackConfig = Object.assign(commonWebpackConfig, {
|
|||||||
cache: true,
|
cache: true,
|
||||||
devtool: 'eval',
|
devtool: 'eval',
|
||||||
entry: [
|
entry: [
|
||||||
'babel-polyfill',
|
|
||||||
'webpack-hot-middleware/client',
|
'webpack-hot-middleware/client',
|
||||||
'./src/index',
|
'./src/index',
|
||||||
],
|
],
|
||||||
|
@ -7,7 +7,6 @@ productionWebpackConfig = Object.assign(commonWebpackConfig, {
|
|||||||
cache: true,
|
cache: true,
|
||||||
devtool: 'cheap-module-source-map',
|
devtool: 'cheap-module-source-map',
|
||||||
entry: [
|
entry: [
|
||||||
'babel-polyfill',
|
|
||||||
'./src/index',
|
'./src/index',
|
||||||
],
|
],
|
||||||
output: {
|
output: {
|
||||||
|
Reference in New Issue
Block a user