Skip to content

Commit

Permalink
update to webpack2
Browse files Browse the repository at this point in the history
  • Loading branch information
DavidWells committed May 21, 2017
1 parent 38057bd commit 31738e9
Show file tree
Hide file tree
Showing 9 changed files with 254 additions and 180 deletions.
22 changes: 11 additions & 11 deletions .eslintrc
Original file line number Diff line number Diff line change
@@ -1,24 +1,25 @@
{
"parser": "babel-eslint",
"extends": "airbnb",
"extends": [
"eslint:recommended",
"plugin:react/recommended",
],
"env": {
"browser": true,
"node": true,
"jest": true,
"es6": true
},
"plugins": [
"react",
],
"parserOptions": {
"ecmaVersion": 6,
"sourceType": "module",
"ecmaFeatures": {
"jsx": true
}
"jsx": true,
"generators": true,
"experimentalObjectRestSpread": true,
},
},
"plugins": [
"react",
"import",
"jsx-a11y",
],
"rules": {
"max-len": 0,
"semi": [2, "never"],
Expand All @@ -37,7 +38,6 @@
"object-shorthand": 0,
"import/no-unresolved": 0,
'no-warning-comments': ['warn', { terms: ['todo', 'fixme', '@todo', '@fixme'], location: 'start' }],
"jsx-a11y/no-static-element-interactions": 0,
"jsx-quotes": [2, "prefer-single"],
"react/forbid-prop-types": 0,
"react/prefer-stateless-function": 1,
Expand Down
154 changes: 97 additions & 57 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,110 +35,150 @@
"pretest": "npm run lint",
"dll": "webpack --display-chunks --color --config webpack.DLL.babel.js"
},
"dependencies": {
"@serverless/ui-components": "0.0.5",
"auth0-lock": "10.2.1",
"axios": "^0.13.1",
"classnames": "^2.2.5",
"clipboard": "^1.5.16",
"jwt-decode": "^2.1.0",
"localforage": "^1.4.3",
"lodash.debounce": "^4.0.8",
"phenomic": "^0.21.1",
"prop-types": "^15.5.10",
"react": "^15.0.0",
"react-auto-form": "^1.3.0",
"react-dom": "^15.0.0",
"react-google-analytics": "^0.2.0",
"react-helmet": "^3.0.0",
"react-redux": "^4.4.1",
"react-router": "^2.3.0",
"react-svg-inline": "^1.1.0",
"redux": "^3.0.0",
"redux-thunk": "^2.1.0",
"whatwg-fetch": "^0.11.0"
},
"devDependencies": {
"@serverless/ui-components": "0.0.6",
"async": "^2.0.1",
"babel-cli": "^6.3.17",
"babel-core": "^6.3.26",
"babel-cli": "^6.14.0",
"babel-core": "^6.14.0",
"babel-eslint": "^7.0.0",
"babel-loader": "^6.2.0",
"babel-preset-es2015": "^6.3.13",
"babel-preset-react": "^6.3.13",
"babel-preset-react-hmre": "^1.0.1",
"babel-loader": "^7.0.0-beta.1",
"babel-plugin-transform-react-jsx-self": "^6.11.0",
"babel-plugin-transform-react-jsx-source": "^6.9.0",
"babel-preset-env": "^1.3.2",
"babel-preset-react": "^6.23.0",
"babel-preset-react-optimize": "^1.0.1",
"babel-preset-stage-1": "^6.3.13",
"babel-preset-stage-2": "^6.22.0",
"cheerio": "^0.22.0",
"classnames": "^2.2.3",
"classnames": "^2.2.5",
"color": "^0.11.1",
"copy-webpack-plugin": "^3.0.1",
"critical": "^0.8.0",
"css-loader": "^0.23.0",
"css-loader": "^0.28.0",
"cssnano": "^3.7.7",
"directory-tree": "^1.1.0",
"download": "^5.0.2",
"eslint": "^3.7.1",
"eslint-config-airbnb": "12.0.0",
"eslint-loader": "^1.5.0",
"eslint-loader": "^1.7.1",
"eslint-plugin-import": "^2.0.0",
"eslint-plugin-jsx-a11y": "^2.2.0",
"eslint-plugin-react": "^6.2.0",
"extract-text-webpack-plugin": "git://github.com/ServerlessInc/extract-text-webpack-plugin.git#webpack-1",
"file-loader": "^0.8.1",
"eslint-plugin-react": "^6.4.0",
"extract-text-webpack-plugin": "^2.1.0",
"file-loader": "^0.9.0",
"fs-extra": "^0.30.0",
"globby": "^6.1.0",
"gray-matter": "^2.0.2",
"history": "^2.0.0",
"htmlparser2": "^3.9.1",
"invariant": "^2.1.1",
"jade": "^1.11.0",
"json-loader": "^0.5.2",
"node-dir": "^0.1.16",
"normalizr": "^3.2.1",
"npm-run-all": "^1.7.0",
"path-exists": "^3.0.0",
"postcss-browser-reporter": "^0.4.0",
"postcss-cssnext": "^2.4.0",
"postcss-import": "^8.1.2",
"postcss-loader": "^0.7.0",
"postcss-math": "0.0.5",
"postcss-loader": "^1.3.3",
"postcss-nested": "^1.0.0",
"postcss-reporter": "^1.3.0",
"postcss-simple-vars": "^3.0.0",
"prepend-file": "^1.3.0",
"raw-loader": "^0.5.1",
"react-hot-loader": "^3.0.0-beta.6",
"rimraf": "^2.5.4",
"sitemap": "^1.8.1",
"style-loader": "^0.12.3",
"stylelint": "^6.8.0",
"stylelint-config-standard": "^10.0.0",
"style-loader": "^0.13.0",
"stylelint": "^7.2.0",
"svgo": "^0.7.0",
"watch": "^1.0.1",
"webpack": "^1.12.1",
"webpack": "^2.3.0",
"yamljs": "^0.2.8"
},
"#babel": "webpack-(development|production) are useful for webpack 2, otherwise use development|production",
"babel": {
"presets": [
"babel-preset-react",
"babel-preset-es2015",
"babel-preset-stage-1"
],
"env": {
"test": {
"presets": [
"babel-preset-env",
"babel-preset-stage-2",
"babel-preset-react"
]
},
"development": {
"presets": [
"babel-preset-env",
"babel-preset-stage-2",
"babel-preset-react"
],
"plugins": [
"babel-plugin-transform-react-jsx-source",
"babel-plugin-transform-react-jsx-self",
"react-hot-loader/babel"
]
},
"production": {
"presets": [
"babel-preset-react-optimize"
"babel-preset-react-optimize",
"babel-preset-env",
"babel-preset-stage-2",
"babel-preset-react"
]
},
"webpack-development": {
"presets": [
[
"babel-preset-env",
{
"modules": false
}
],
"babel-preset-stage-2",
"babel-preset-react"
],
"plugins": [
"babel-plugin-transform-react-jsx-source",
"babel-plugin-transform-react-jsx-self",
"react-hot-loader/babel"
]
},
"webpack-production": {
"presets": [
"babel-preset-react-optimize",
[
"babel-preset-env",
{
"modules": false
}
],
"babel-preset-stage-2",
"babel-preset-react"
]
}
}
},
"eslintConfigRuleReact/prefer-stateless-function": "https://github.com/MoOx/phenomic/issues/46",
"stylelint": {
"extends": "stylelint-config-standard",
"extends": "./node_modules/phenomic/lib/stylelint-config-recommended/index.js",
"rules": {
"block-no-empty": null
}
},
"dependencies": {
"@serverless/ui-components": "0.0.5",
"auth0-lock": "10.2.1",
"axios": "^0.13.1",
"classnames": "^2.2.5",
"clipboard": "^1.5.16",
"jwt-decode": "^2.1.0",
"localforage": "^1.4.3",
"lodash.debounce": "^4.0.8",
"phenomic": "0.20.2",
"react": "^15.0.0-rc.1",
"react-auto-form": "^1.3.0",
"react-dom": "^15.0.0-rc.1",
"react-google-analytics": "^0.2.0",
"react-helmet": "^3.0.0",
"react-redux": "^4.4.1",
"react-router": "^2.3.0",
"react-svg-inline": "^1.1.0",
"redux": "^3.0.0",
"redux-thunk": "^2.1.0",
"whatwg-fetch": "^0.11.0"
},
"dllPlugin": {
"path": "node_modules/@dummy-dll-folder"
}
Expand Down
3 changes: 2 additions & 1 deletion postcss.config.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@

module.exports = (config, hotLoadedVariables) => [
// require("stylelint")(),
require('postcss-cssnext')({ browsers: 'last 2 versions' }),
Expand All @@ -18,7 +19,7 @@ module.exports = (config, hotLoadedVariables) => [
}
}),
/* do math with resolve( ) */
require('postcss-math'),
// require('postcss-math'),
// require('cssnano'), breaks keyframes
/* enable nested css selectors like Sass/Less */
require('postcss-nested'),
Expand Down
5 changes: 5 additions & 0 deletions scripts/metadata.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
const metadata = {
empty: 'hi',
}

export default metadata
31 changes: 21 additions & 10 deletions scripts/phenomic.browser.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
// Hot loading HRM Patch
import 'react-hot-loader/patch'
import 'whatwg-fetch'

import phenomicClient from 'phenomic/lib/client'
import routes from '../src/routes'
import configureStore from '../src/store'
import metadata from './metadata.js'
import routes from '../src/routes.js'
import configureStore from '../src/store.js'
import { initialAuthState } from '../src/redux/user'

const windowState = (typeof window !== 'undefined') ? window.__INITIAL_STATE__ : {}
const authState = {
auth: initialAuthState
Expand All @@ -19,22 +24,28 @@ store.dispatch({
})

phenomicClient({
metadata: {
empty: 'hi',
},
metadata,
routes,
store,
})

// hot loading
// md files → JSON && generate collection + hot loading for dev
let mdContext = require.context('../content', true, /\.md$/)
// md files processed via phenomic-loader to JSON & generate collection
let mdContext = require.context('../content', true, /\.(md|markdown)$/)
mdContext.keys().forEach(mdContext)

// hot loading
if (module.hot) {
const mdHotUpdater = require('phenomic/lib/client/hot-md').default // eslint-disable-line
// hot load md
module.hot.accept(mdContext.id, () => {
mdContext = require.context('../content', true, /\.md$/)
mdContext = require.context("../content", true, /\.(md|markdown)$/)
const mdHotUpdater = require('phenomic/lib/client/hot-md').default
const requireUpdate = mdHotUpdater(mdContext, window.__COLLECTION__, store)
mdContext.keys().forEach(requireUpdate)
})

// hot load app
module.hot.accept(
[ "./metadata.js", "../src/routes.js", "../src/store.js" ],
() => phenomicClient({ metadata, routes, store })
)
}
12 changes: 3 additions & 9 deletions scripts/phenomic.node.js
Original file line number Diff line number Diff line change
@@ -1,16 +1,10 @@
import phenomicStatic from 'phenomic/lib/static'
import metadata from './metadata'
import routes from '../src/routes'
import configureStore from '../src/store'

const initialState = { ...(typeof window !== 'undefined') && window.__INITIAL_STATE__ }
const store = configureStore(initialState)

module.exports = (options) =>
phenomicStatic({
...options,
metadata: {
empty: 'hi',
},
routes,
store,
})
export default (options) =>
phenomicStatic({ ...options, metadata, routes, store })
9 changes: 6 additions & 3 deletions src/layouts/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@
* Usage in markdown ->
* Layout: Page
*/
export Default from './Default'
export Post from './Post'
export Doc from './Doc'
import Default from './Default'
export { Default }
import Post from './Post'
export { Post }
import Doc from './Doc'
export { Doc }
Loading

0 comments on commit 31738e9

Please sign in to comment.