{
"presets": ["es2015", "stage-0", "react"],
- "ignore": [
- "**/libs/**"
- ]
+ "ignore": [
+ "**/libs/**"
+ ],
+ "env": {
+ "hot": {
+ "plugins": [["react-transform", {
+ "transforms": [{
+ "transform": "react-transform-hmr",
+ "imports": ["react"],
+ "locals": ["module"]
+ }]
+ }]]
+ }
+ }
}
--- /dev/null
+/*
+ * SonarQube
+ * Copyright (C) 2009-2016 SonarSource SA
+ * mailto:contact AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+ /* eslint no-var: 0 */
+ /* eslint no-console: 0 */
+ /* eslint object-shorthand: 0 */
+ /* jscs:disable requireEnhancedObjectLiterals */
+var url = require('url');
+var express = require('express');
+var proxy = require('express-http-proxy');
+var webpack = require('webpack');
+var config = require('./webpack.config.dev');
+
+var app = express();
+var compiler = webpack(config);
+
+var PORT = process.env.PORT || 8080;
+var API_HOST = process.env.API_HOST || 'http://localhost:9000';
+
+app.use(require('webpack-dev-middleware')(compiler, {
+ noInfo: true,
+ publicPath: config.output.publicPath
+}));
+
+app.use(require('webpack-hot-middleware')(compiler));
+
+app.all('*', proxy(API_HOST, {
+ forwardPath: function (req) {
+ return url.parse(req.url).path;
+ }
+}));
+
+app.listen(PORT, 'localhost', function (err) {
+ if (err) {
+ console.log(err);
+ return;
+ }
+
+ console.log('Listening at http://localhost:' + PORT);
+});
"babel-core": "6.3.17",
"babel-eslint": "5.0.0",
"babel-loader": "6.2.0",
+ "babel-plugin-react-transform": "2.0.2",
"babel-polyfill": "6.3.14",
"babel-preset-es2015": "6.3.13",
"babel-preset-react": "6.3.13",
"eslint-plugin-react": "4.0.0",
"event-stream": "3.3.1",
"expose-loader": "0.7.1",
+ "express": "4.13.4",
+ "express-http-proxy": "0.6.0",
"glob": "5.0.15",
"gulp": "3.9.0",
"gulp-autoprefixer": "3.1.0",
"react-router": "2.0.0",
"react-router-redux": "4.0.0",
"react-select": "1.0.0-beta6",
+ "react-transform-hmr": "1.0.4",
"redux": "3.3.1",
"redux-logger": "2.2.1",
"redux-simple-router": "1.0.1",
"vinyl-buffer": "1.0.0",
"vinyl-source-stream": "1.1.0",
"webpack": "1.12.9",
+ "webpack-dev-middleware": "1.6.1",
+ "webpack-hot-middleware": "2.10.0",
"whatwg-fetch": "0.10.0",
"yargs": "3.27.0"
},
"build": "gulp build",
"test": "mocha --opts tests/mocha.opts tests",
"coverage": "babel-node node_modules/.bin/isparta cover --root 'src/main/js' --include-all-sources --excludes '**/libs/**' --dir 'target/coverage' node_modules/.bin/_mocha -- --opts tests/mocha.opts tests",
- "lint": "eslint src/main/js && jscs src/main/js"
+ "lint": "eslint src/main/js && jscs src/main/js",
+ "dev": "NODE_ENV=hot node devServer"
},
"engines": {
"node": ">=4"
--- /dev/null
+/*
+ * SonarQube
+ * Copyright (C) 2009-2016 SonarSource SA
+ * mailto:contact AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+/* eslint no-var: 0 */
+var webpack = require('webpack');
+
+var config = require('./webpack.config');
+
+config.devtool = 'cheap-module-eval-source-map';
+config.output.publicPath = '/js/bundles/';
+config.entry.vendor.unshift('webpack-hot-middleware/client');
+config.plugins = [].concat(config.plugins, [
+ new webpack.HotModuleReplacementPlugin()
+]);
+
+module.exports = config;
+/* eslint no-var: 0 */
+/* eslint object-shorthand: 0 */
+/* jscs:disable requireEnhancedObjectLiterals */
var path = require('path');
var webpack = require('webpack');
var autoprefixer = require('autoprefixer');