From 24c9215dc281a6f06d9cc4cce64b0bae392d4430 Mon Sep 17 00:00:00 2001 From: Wyatt Johnson Date: Tue, 8 Nov 2016 12:39:49 -0700 Subject: [PATCH 1/5] Added circle improvements --- Dockerfile | 8 +------- circle.yml | 1 + 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/Dockerfile b/Dockerfile index 985e55159..3be5916a8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,15 +11,9 @@ EXPOSE 5000 # Install app dependencies COPY package.json /usr/src/app/ -RUN npm install +RUN npm install --production # Bundle app source COPY . /usr/src/app -# Compile static assets -RUN npm run build - -# Prune development dependancies -RUN npm prune --production - CMD [ "npm", "start" ] diff --git a/circle.yml b/circle.yml index 9de9eae4c..b9cea6fed 100644 --- a/circle.yml +++ b/circle.yml @@ -8,6 +8,7 @@ test: override: - MOCHA_FILE=$CIRCLE_TEST_REPORTS/junit/test-results.xml ./node_modules/.bin/mocha tests --reporter mocha-junit-reporter - npm run lint + - npm run build deployment: release: From 8369f263fb0eaad6a9ce8d606b367a5ebf5d2de0 Mon Sep 17 00:00:00 2001 From: Wyatt Johnson Date: Tue, 8 Nov 2016 15:00:19 -0700 Subject: [PATCH 2/5] Merged webpack files to unified --- client/coral-admin/.gitignore | 6 -- client/coral-admin/config.json | 4 +- client/coral-admin/package.json | 42 --------- client/coral-admin/postcss.config.js | 7 -- client/coral-admin/public/index.html | 22 ----- client/coral-admin/webpack.config.dev.js | 32 ------- client/coral-admin/webpack.config.js | 19 ---- client/coral-embed-stream/.gitignore | 0 client/coral-embed-stream/dev-server.js | 41 --------- client/coral-embed-stream/index.html | 13 --- .../src/{app.js => index.js} | 0 .../coral-embed-stream/webpack.config.dev.js | 70 --------------- client/coral-embed-stream/webpack.config.js | 73 --------------- dist/coral-admin/index.html | 23 ----- dist/coral-admin/manifest.json | 12 --- package.json | 20 +++-- webpack.config.dev.js | 90 +++++++++++++++++++ webpack.config.js | 22 +++++ 18 files changed, 126 insertions(+), 370 deletions(-) delete mode 100644 client/coral-admin/.gitignore delete mode 100644 client/coral-admin/package.json delete mode 100644 client/coral-admin/postcss.config.js delete mode 100644 client/coral-admin/public/index.html delete mode 100644 client/coral-admin/webpack.config.dev.js delete mode 100644 client/coral-admin/webpack.config.js delete mode 100644 client/coral-embed-stream/.gitignore delete mode 100644 client/coral-embed-stream/dev-server.js delete mode 100644 client/coral-embed-stream/index.html rename client/coral-embed-stream/src/{app.js => index.js} (100%) delete mode 100644 client/coral-embed-stream/webpack.config.dev.js delete mode 100644 client/coral-embed-stream/webpack.config.js delete mode 100644 dist/coral-admin/index.html delete mode 100644 dist/coral-admin/manifest.json create mode 100644 webpack.config.dev.js create mode 100644 webpack.config.js diff --git a/client/coral-admin/.gitignore b/client/coral-admin/.gitignore deleted file mode 100644 index 707c890e5..000000000 --- a/client/coral-admin/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -node_modules -public/bundle.js -public/embed/comment-stream -.DS_Store -npm-debug.log -yarn.lock diff --git a/client/coral-admin/config.json b/client/coral-admin/config.json index c8f318cfc..156740de5 100644 --- a/client/coral-admin/config.json +++ b/client/coral-admin/config.json @@ -1,5 +1,3 @@ { - "basePath": "admin", - "talkHost": "http://localhost:16180", - "xeniaHost": "http://localhost:16180" + "basePath": "admin" } diff --git a/client/coral-admin/package.json b/client/coral-admin/package.json deleted file mode 100644 index 048359526..000000000 --- a/client/coral-admin/package.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "coral-admin", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "build": "./node_modules/.bin/webpack --config webpack.config.js", - "start": "./node_modules/.bin/webpack-dev-server --config webpack.config.dev.js --inline --hot --content-base public --port 3142" - }, - "keywords": [], - "author": "", - "license": "ISC", - "dependencies": { - "hammerjs": "2.0.8", - "immutable": "3.8.1", - "keymaster": "1.6.2", - "material-design-lite": "1.2.1", - "react": "^15.3.2", - "react-dom": "^15.3.2", - "react-mdl": "^1.7.2", - "react-redux": "^4.4.5", - "react-router": "^3.0.0", - "redux": "3.6.0", - "redux-thunk": "2.1.0", - "timeago.js": "2.0.2" - }, - "devDependencies": { - "autoprefixer": "6.5.0", - "babel-core": "^6.18.2", - "babel-loader": "^6.2.7", - "copy-webpack-plugin": "3.0.1", - "css-loader": "0.25.0", - "json-loader": "0.5.4", - "postcss-loader": "0.13.0", - "postcss-modules": "0.5.2", - "precss": "1.4.0", - "standard": "8.2.0", - "style-loader": "0.13.1", - "webpack": "^1.13.3", - "webpack-dev-server": "1.16.1" - } -} diff --git a/client/coral-admin/postcss.config.js b/client/coral-admin/postcss.config.js deleted file mode 100644 index d5267160a..000000000 --- a/client/coral-admin/postcss.config.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - plugins: [ - require('postcss-smart-import')({ /* ...options */ }), - require('precss')({ /* ...options */ }), - require('autoprefixer')({ /* ...options */ }) - ] -} diff --git a/client/coral-admin/public/index.html b/client/coral-admin/public/index.html deleted file mode 100644 index ef1adffec..000000000 --- a/client/coral-admin/public/index.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - Talk - Coral Admin - - - - - -
- - - diff --git a/client/coral-admin/webpack.config.dev.js b/client/coral-admin/webpack.config.dev.js deleted file mode 100644 index e4d771e72..000000000 --- a/client/coral-admin/webpack.config.dev.js +++ /dev/null @@ -1,32 +0,0 @@ -const path = require('path') -const autoprefixer = require('autoprefixer') -const precss = require('precss') - -module.exports = { - entry: { - 'bundle': path.join(__dirname, 'src', 'index') - }, - output: { - path: path.join(__dirname, '..', '..', 'dist', 'coral-admin'), - filename: '[name].js' - }, - module: { - loaders: [ - { test: /.js$/, loader: 'babel', include: path.join(__dirname, 'src'), exclude: /node_modules/ }, - { test: /\.json$/, loaders: 'json', include: __dirname, exclude: /node_modules/ }, - { test: /.css$/, loaders: ['style-loader', 'css-loader?modules&localIdentName=[name]__[local]___[hash:base64:5]', 'postcss-loader'] } - ] - }, - plugins: [ autoprefixer, precss ], - resolve: { - root: [ - path.resolve('./src'), - path.resolve('../') - ] - }, - devServer: { - historyApiFallback: { - index: '/' - } - } -} diff --git a/client/coral-admin/webpack.config.js b/client/coral-admin/webpack.config.js deleted file mode 100644 index 0cceded4b..000000000 --- a/client/coral-admin/webpack.config.js +++ /dev/null @@ -1,19 +0,0 @@ -const path = require('path') -const devConfig = require('./webpack.config.dev') -const autoprefixer = require('autoprefixer') -const precss = require('precss') -const Copy = require('copy-webpack-plugin') - -module.exports = Object.assign({}, devConfig, { - module: { - context: __dirname, - loaders: [ - { test: /.js$/, loader: 'babel', include: [path.join(__dirname, 'src'), path.join(__dirname, '../', 'coral-framework')], exclude: /node_modules/ }, - { test: /.json$/, loader: 'json', include: __dirname, exclude: /node_modules/ }, - { test: /.css$/, loaders: ['style-loader', 'css-loader?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]', 'postcss-loader'] } - ] - }, - plugins: [ - autoprefixer, precss - ] -}) diff --git a/client/coral-embed-stream/.gitignore b/client/coral-embed-stream/.gitignore deleted file mode 100644 index e69de29bb..000000000 diff --git a/client/coral-embed-stream/dev-server.js b/client/coral-embed-stream/dev-server.js deleted file mode 100644 index 926033fda..000000000 --- a/client/coral-embed-stream/dev-server.js +++ /dev/null @@ -1,41 +0,0 @@ -var path = require('path') -var express = require('express') -var http = require('http') -var webpack = require('webpack') -var config = require('./webpack.config.dev') -var Dashboard = require('webpack-dashboard') -var DashboardPlugin = require('webpack-dashboard/plugin') - -var app = express() -var server = http.Server(app) - -var compiler = webpack(config) -var dashboard = new Dashboard() -compiler.apply(new DashboardPlugin(dashboard.setData)) - -app.use(express.static('public')) - -app.use(require('webpack-dev-middleware')(compiler, { - noInfo: true, - quiet: true, - publicPath: config.output.publicPath -})) - -app.use(require('webpack-hot-middleware')(compiler, {log: () => {}})) - -app.get('/default.css', function (req, res) { - res.sendFile(path.join(__dirname, '/style/default.css')) -}) - -app.get('*', function (req, res) { - res.sendFile(path.join(__dirname, 'index.html')) -}) - -server.listen(6182, 'localhost', function (err) { - if (err) { - console.log(err) - return - } - - console.log('Listening at http://localhost:6182') -}) diff --git a/client/coral-embed-stream/index.html b/client/coral-embed-stream/index.html deleted file mode 100644 index 6e15cba9f..000000000 --- a/client/coral-embed-stream/index.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - -
- - - diff --git a/client/coral-embed-stream/src/app.js b/client/coral-embed-stream/src/index.js similarity index 100% rename from client/coral-embed-stream/src/app.js rename to client/coral-embed-stream/src/index.js diff --git a/client/coral-embed-stream/webpack.config.dev.js b/client/coral-embed-stream/webpack.config.dev.js deleted file mode 100644 index dd5534529..000000000 --- a/client/coral-embed-stream/webpack.config.dev.js +++ /dev/null @@ -1,70 +0,0 @@ -var path = require('path') -var webpack = require('webpack') -const Copy = require('copy-webpack-plugin') - -module.exports = { - devtool: 'eval', - entry: [ - 'babel-polyfill', - 'webpack-hot-middleware/client', - path.join(__dirname, 'src', 'app') - ], - output: { - path: path.join(__dirname, '..', '..','dist', 'coral-embed-stream'), - filename: 'bundle.js', - publicPath: '/' - }, - resolve: { - root: [ - path.resolve(__dirname, 'src'), - path.resolve(__dirname, '..') - ], - extensions: ['', '.js', '.jsx'] - }, - plugins: [ - new Copy([{ - from: path.join(__dirname, 'index.html') - }, - { - from: path.join(__dirname, 'style', 'default.css') - }, - { - from: path.join(__dirname, 'public'), - to: './' - }]), - new webpack.DefinePlugin({ - 'process.env': { - 'NODE_ENV': JSON.stringify('development') - } - }), - new webpack.HotModuleReplacementPlugin(), - new webpack.ProvidePlugin({ - 'fetch': 'imports?this=>global!exports?global.fetch!whatwg-fetch' - }), - new webpack.NoErrorsPlugin() - ], - module: { - loaders: [{ - test: /\.(js|jsx)$/, - - loaders: ['babel'], - exclude: /node_modules/, - include: path.join(__dirname, '../') - }, { - test: /\.css$/, - loader: 'style-loader!css-loader' - }, { - test: /\.png$/, - loader: 'url-loader?limit=100000' - }, { - test: /\.(jpg|png|gif|svg)$/, - loader: 'file-loader' - }, { - test: /\.json$/, - loader: 'json-loader' - }, { - test: /\.woff$/, - loader: 'url?limit=100000' - }] - } -} diff --git a/client/coral-embed-stream/webpack.config.js b/client/coral-embed-stream/webpack.config.js deleted file mode 100644 index 2db94e6af..000000000 --- a/client/coral-embed-stream/webpack.config.js +++ /dev/null @@ -1,73 +0,0 @@ -const path = require('path') -const webpack = require('webpack') -const Copy = require('copy-webpack-plugin') - -//Keeping this file for reference, it should move to a global webpack. - -module.exports = { - devtool: 'source-map', - entry: [ - 'babel-polyfill', - path.join(__dirname, 'src', 'app') - ], - output: { - path: path.join(__dirname, '..', '..','dist', 'coral-embed-stream'), - filename: 'bundle.js', - publicPath: '/dist/' - }, - resolve: { - root: [ - path.resolve(__dirname, 'src') - ], - extensions: ['', '.js', '.jsx'] - }, - plugins: [ - new Copy([{ - from: path.join(__dirname, 'index.html') - }, - { - from: path.join(__dirname, 'style', 'default.css') - }, - { - from: path.join(__dirname, 'public'), - to: './' - }, - { - from: path.resolve(__dirname, '..', 'coral-framework', 'i18n', 'translations'), - to: './translations' - }]), - new webpack.optimize.OccurenceOrderPlugin(), - new webpack.DefinePlugin({ - 'process.env': { - 'NODE_ENV': JSON.stringify('production') - } - }), - new webpack.ProvidePlugin({ - 'fetch': 'imports?this=>global!exports?global.fetch!whatwg-fetch' - }), - new webpack.ExtendedAPIPlugin() - ], - module: { - loaders: [{ - test: /\.(js|jsx)$/, - loaders: ['babel'], - exclude: /node_modules/, - include: path.join(__dirname, '../') - }, { - test: /\.css$/, - loader: 'style-loader!css-loader' - }, { - test: /\.png$/, - loader: 'url-loader?limit=100000' - }, { - test: /\.jpg$/, - loader: 'file-loader' - }, { - test: /\.json$/, - loader: 'json-loader' - }, { - test: /\.woff$/, - loader: 'url?limit=100000' - }] - } -} diff --git a/dist/coral-admin/index.html b/dist/coral-admin/index.html deleted file mode 100644 index 3be58a0c8..000000000 --- a/dist/coral-admin/index.html +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - Talk - Coral Admin - - - - - - -
- - - diff --git a/dist/coral-admin/manifest.json b/dist/coral-admin/manifest.json deleted file mode 100644 index 5da846121..000000000 --- a/dist/coral-admin/manifest.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "short_name": "Talk", - "name": "Talk", - "icons": [ - { - "src": "https://coralproject.net/images/icon-coral-white.svg", - "sizes": "150x150" - } - ], - "start_url": "./", - "display": "standalone" -} diff --git a/package.json b/package.json index dd22a5f8c..02bd7bbe7 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,8 @@ "main": "app.js", "scripts": { "start": "./bin/www", - "build": "./node_modules/webpack/bin/webpack.js --config ./client/coral-embed-stream/webpack.config.js && cd client/coral-admin && npm install && npm run build", + "build": "webpack --config webpack.config.js --bail", + "build-watch": "webpack --config webpack.config.dev.js --watch", "lint": "eslint .", "pretest": "npm install", "test": "mocha tests --recursive", @@ -53,9 +54,9 @@ }, "devDependencies": { "autoprefixer": "6.5.0", - "babel-core": "6.14.0", + "babel-core": "^6.14.0", "babel-jest": "^15.0.0", - "babel-loader": "6.2.5", + "babel-loader": "^6.2.5", "babel-plugin-transform-async-to-generator": "^6.8.0", "babel-plugin-transform-decorators-legacy": "^1.3.4", "babel-plugin-transform-object-assign": "^6.8.0", @@ -67,26 +68,31 @@ "chai": "^3.5.0", "chai-http": "^3.0.0", "copy-webpack-plugin": "^3.0.1", - "css-loader": "0.25.0", + "css-loader": "^0.25.0", "eslint": "^3.9.1", "exports-loader": "^0.6.3", + "hammerjs": "^2.0.8", "immutable": "^3.8.1", "imports-loader": "^0.6.5", "json-loader": "^0.5.4", + "keymaster": "^1.6.2", + "material-design-lite": "^1.2.1", "mocha": "^3.1.2", "mocha-junit-reporter": "^1.12.1", - "postcss-loader": "0.13.0", + "postcss-loader": "^0.13.0", "postcss-modules": "0.5.2", - "precss": "1.4.0", "pre-git": "^3.10.0", + "precss": "^1.4.0", "pym.js": "^1.1.1", "react": "15.3.2", "react-dom": "15.3.2", + "react-mdl": "^1.7.2", "react-redux": "^4.4.5", + "react-router": "^3.0.0", "redux": "^3.6.0", "redux-thunk": "^2.1.0", "regenerator": "^0.8.46", - "style-loader": "0.13.1", + "style-loader": "^0.13.1", "supertest": "^2.0.1", "timeago.js": "^2.0.3", "webpack": "^1.13.2", diff --git a/webpack.config.dev.js b/webpack.config.dev.js new file mode 100644 index 000000000..73662d409 --- /dev/null +++ b/webpack.config.dev.js @@ -0,0 +1,90 @@ +const path = require('path'); +const autoprefixer = require('autoprefixer'); +const precss = require('precss'); +const Copy = require('copy-webpack-plugin'); +const webpack = require('webpack'); + +// Edit the build targets and embeds below. + +const buildTargets = [ + 'coral-admin' +]; + +const buildEmbeds = [ + 'stream' +]; + +module.exports = { + devtool: 'inline-source-map', + entry: buildTargets.reduce((entry, target) => { + + // Add the entry for the bundle. + entry[`${target}/bundle`] = [ + 'babel-polyfill', + path.join(__dirname, 'client/', target, '/src/index') + ]; + + return entry; + }, buildEmbeds.reduce((entry, embed) => { + + // Add the entry for the bundle. + entry[`embed/${embed}/bundle`] = [ + 'babel-polyfill', + path.join(__dirname, 'client/', `coral-embed-${embed}`, '/src/index') + ]; + + return entry; + }, {})), + output: { + path: path.join(__dirname, 'dist'), + filename: '[name].js' + }, + module: { + loaders: [ + { + loader: 'babel', + exclude: /node_modules/, + test: /\.js$/ + }, + { + loader: 'json', + test: /\.json$/, + exclude: /node_modules/ + }, + { + loaders: ['style-loader', 'css-loader?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]', 'postcss-loader'], + test: /.css$/, + }, + { + loader: 'url-loader?limit=100000', + test: /\.png$/ + }, + { + loader: 'file-loader', + test: /\.(jpg|png|gif|svg)$/ + }, + { + loader: 'url?limit=100000', + test: /\.woff$/ + } + ] + }, + plugins: [ + new Copy(buildEmbeds.map(embed => ({ + from: path.join(__dirname, 'client', `coral-embed-${embed}`, 'style'), + to: path.join(__dirname, 'dist', 'embed', embed) + }))), + autoprefixer, + precss, + new webpack.ProvidePlugin({ + 'fetch': 'imports?this=>global!exports?global.fetch!whatwg-fetch' + }) + ], + resolve: { + root: [ + path.join(__dirname, 'client'), + ...buildTargets.map(target => path.join(__dirname, 'client', target, 'src')), + ...buildEmbeds.map(embed => path.join(__dirname, 'client', `coral-embed-${embed}`, 'src')) + ] + } +}; diff --git a/webpack.config.js b/webpack.config.js new file mode 100644 index 000000000..d28ca9d14 --- /dev/null +++ b/webpack.config.js @@ -0,0 +1,22 @@ +const webpack = require('webpack'); +const devConfig = require('./webpack.config.dev'); + +// Disable source maps. +devConfig.devtool = null; + +devConfig.plugins = devConfig.plugins.concat([ + new webpack.DefinePlugin({ + 'process.env': { + 'NODE_ENV': JSON.stringify('production') + } + }), + new webpack.optimize.UglifyJsPlugin({ + compress: { + warnings: false + } + }), + new webpack.optimize.OccurrenceOrderPlugin(), + new webpack.optimize.DedupePlugin() +]); + +module.exports = devConfig; From a1fd4d32baf1612d1db933563a954a9bbdb33d26 Mon Sep 17 00:00:00 2001 From: Wyatt Johnson Date: Tue, 8 Nov 2016 15:53:26 -0700 Subject: [PATCH 3/5] Added error middleware --- .eslintrc.json | 1 + app.js | 53 +++++++++++++++++++++++++++++++++++++++---- routes/admin/index.js | 9 ++++++++ views/error.ejs | 20 ++++++++++++++++ 4 files changed, 78 insertions(+), 5 deletions(-) create mode 100644 routes/admin/index.js create mode 100644 views/error.ejs diff --git a/.eslintrc.json b/.eslintrc.json index 5df3444a6..23bdea410 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -55,6 +55,7 @@ "no-var": [2], "no-lonely-if": [2], "curly": [2], + "no-unused-vars": ["error", { "argsIgnorePattern": "next" }], "no-multiple-empty-lines": [ "error", {"max": 1} diff --git a/app.js b/app.js index d4041c93a..29817c970 100644 --- a/app.js +++ b/app.js @@ -11,14 +11,57 @@ app.use(bodyParser.json()); app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'ejs'); -// API Routes. +// Routes. app.use('/api/v1', require('./routes/api')); +app.use('/client', express.static(path.join(__dirname, 'dist'))); +app.use('/admin', require('./routes/admin')); -// Static Routes. -app.use('/client/', express.static(path.join(__dirname, 'dist'))); +//============================================================================== +// ERROR HANDLING +//============================================================================== -app.get('/admin*', (req, res) => { - res.render('admin', {basePath: '/client/coral-admin'}); +const ErrNotFound = new Error('Not Found'); +ErrNotFound.status = 404; + +// Catch 404 and forward to error handler. +app.use((req, res, next) => { + next(ErrNotFound); +}); + +// General error handler. Respond with the message and error if we have it while +// returning a status code that makes sense. +if (app.get('env') === 'development') { + app.use('/api', (err, req, res, next) => { + res.status(err.status || 500); + res.json({ + message: err.message, + error: err + }); + }); + + app.use('/', (err, req, res, next) => { + res.status(err.status || 500); + res.render('error', { + message: err.message, + error: err + }); + }); +} + +app.use('/api', (err, req, res, next) => { + res.status(err.status || 500); + res.json({ + message: err.message, + error: {} + }); +}); + +app.use('/', (err, req, res, next) => { + res.status(err.status || 500); + res.render('error', { + message: err.message, + error: {} + }); }); module.exports = app; diff --git a/routes/admin/index.js b/routes/admin/index.js new file mode 100644 index 000000000..86fcb018f --- /dev/null +++ b/routes/admin/index.js @@ -0,0 +1,9 @@ +const express = require('express'); + +const router = express.Router(); + +router.get('*', (req, res) => { + res.render('admin', {basePath: '/client/coral-admin'}); +}); + +module.exports = router; diff --git a/views/error.ejs b/views/error.ejs new file mode 100644 index 000000000..18d70b831 --- /dev/null +++ b/views/error.ejs @@ -0,0 +1,20 @@ + + + + + + + Error + + + + +
+ +
<%= message %>
+ +
<%= error.stack %>
+ +
+ + From 7d5eae2e2f198f0c4ab5ebc5e97070fdc44b4a4e Mon Sep 17 00:00:00 2001 From: Wyatt Johnson Date: Tue, 8 Nov 2016 16:21:50 -0700 Subject: [PATCH 4/5] Added embed stream preview --- routes/admin/index.js | 4 ++++ views/embed-stream.ejs | 23 +++++++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 views/embed-stream.ejs diff --git a/routes/admin/index.js b/routes/admin/index.js index 86fcb018f..52957f54a 100644 --- a/routes/admin/index.js +++ b/routes/admin/index.js @@ -2,6 +2,10 @@ const express = require('express'); const router = express.Router(); +router.get('/embed/stream/preview', (req, res) => { + res.render('embed-stream', {basePath: '/client/embed/stream'}); +}); + router.get('*', (req, res) => { res.render('admin', {basePath: '/client/coral-admin'}); }); diff --git a/views/embed-stream.ejs b/views/embed-stream.ejs new file mode 100644 index 000000000..47bda6bee --- /dev/null +++ b/views/embed-stream.ejs @@ -0,0 +1,23 @@ + + + + + + Talk - Coral Admin + + + + + + +
+ + + From e638d2785bd1b16338f1e9f1edc08fed29f968a6 Mon Sep 17 00:00:00 2001 From: Wyatt Johnson Date: Wed, 9 Nov 2016 07:53:34 -0700 Subject: [PATCH 5/5] Some dep fixes which will hopefully resolve the CI issues --- package.json | 27 +++++++++++---------------- postcss.config.js | 7 +++++++ webpack.config.dev.js | 9 +++++++-- 3 files changed, 25 insertions(+), 18 deletions(-) create mode 100644 postcss.config.js diff --git a/package.json b/package.json index 02bd7bbe7..979475b5b 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,6 @@ }, "homepage": "https://github.com/coralproject/talk#readme", "dependencies": { - "autoprefixer": "^6.5.2", "body-parser": "^1.15.2", "debug": "^2.2.0", "ejs": "^2.5.2", @@ -53,21 +52,20 @@ "uuid": "^2.0.3" }, "devDependencies": { - "autoprefixer": "6.5.0", - "babel-core": "^6.14.0", - "babel-jest": "^15.0.0", - "babel-loader": "^6.2.5", - "babel-plugin-transform-async-to-generator": "^6.8.0", + "autoprefixer": "^6.5.0", + "babel-core": "^6.18.2", + "babel-loader": "^6.2.7", + "babel-plugin-transform-async-to-generator": "^6.16.0", "babel-plugin-transform-decorators-legacy": "^1.3.4", "babel-plugin-transform-object-assign": "^6.8.0", "babel-plugin-transform-react-jsx": "^6.8.0", - "babel-polyfill": "^6.13.0", - "babel-preset-es2015": "6.13.0", + "babel-polyfill": "^6.16.0", + "babel-preset-es2015": "^6.18.0", "babel-preset-es2015-minimal": "^2.1.0", "babel-preset-stage-0": "^6.16.0", "chai": "^3.5.0", "chai-http": "^3.0.0", - "copy-webpack-plugin": "^3.0.1", + "copy-webpack-plugin": "^4.0.0", "css-loader": "^0.25.0", "eslint": "^3.9.1", "exports-loader": "^0.6.3", @@ -79,8 +77,9 @@ "material-design-lite": "^1.2.1", "mocha": "^3.1.2", "mocha-junit-reporter": "^1.12.1", - "postcss-loader": "^0.13.0", - "postcss-modules": "0.5.2", + "postcss-loader": "^1.1.0", + "postcss-modules": "^0.5.2", + "postcss-smart-import": "^0.5.1", "pre-git": "^3.10.0", "precss": "^1.4.0", "pym.js": "^1.1.1", @@ -95,11 +94,7 @@ "style-loader": "^0.13.1", "supertest": "^2.0.1", "timeago.js": "^2.0.3", - "webpack": "^1.13.2", - "webpack-dashboard": "^0.2.0", - "webpack-dev-middleware": "^1.8.3", - "webpack-hot-middleware": "^2.12.2", - "webpack-module-hot-accept": "^1.0.4", + "webpack": "^1.13.3", "whatwg-fetch": "^1.0.0" }, "engines": { diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 000000000..79fae36cb --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,7 @@ +module.exports = { + plugins: [ + require('postcss-smart-import')({ /* ...options */ }), + require('precss')({ /* ...options */ }), + require('autoprefixer')({ /* ...options */ }) + ] +}; diff --git a/webpack.config.dev.js b/webpack.config.dev.js index 73662d409..e2c92b396 100644 --- a/webpack.config.dev.js +++ b/webpack.config.dev.js @@ -52,7 +52,11 @@ module.exports = { exclude: /node_modules/ }, { - loaders: ['style-loader', 'css-loader?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]', 'postcss-loader'], + loaders: [ + 'style-loader', + 'css-loader?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]', + 'postcss-loader' + ], test: /.css$/, }, { @@ -86,5 +90,6 @@ module.exports = { ...buildTargets.map(target => path.join(__dirname, 'client', target, 'src')), ...buildEmbeds.map(embed => path.join(__dirname, 'client', `coral-embed-${embed}`, 'src')) ] - } + }, + postcss: require('./postcss.config.js') };