app.use(require('webpack-hot-middleware')(compiler));
app.use('/static', express.static('public'));
app.get('*', function(req, res) {
res.sendFile(path.join(__dirname, 'index.html'));
});
<Image src="static/public/thumb.jpg" rounded />
{
"name": "react-effort-tracker-boilerplate",
"version": "0.0.1",
"description": "A new Webpack boilerplate with hot reloading React components, and error handling on module and component level.",
"scripts": {
"clean": "rimraf dist",
"build:webpack": "cross-env NODE_ENV=production webpack --config webpack.config.prod.js",
"build": "npm run clean && npm run build:webpack",
"start": "node devServer.js",
"lint": "eslint src"
},
"repository": {
"type": "git",
"url": "https://github.com/daviscom/efforttrackerv2.git"
},
"keywords": [
"react",
"reactjs",
"boilerplate",
"hot",
"reload",
"hmr",
"live",
"edit",
"webpack",
"babel",
"react-transform"
],
"author": "Ninja Mate <info@ninjamate.com> ",
"license": "CC0-1.0",
"bugs": {
"url": "https://github.com/daviscom/efforttrackerv2.git/issues"
},
"homepage": "http://davisdotcom.com.au/efforttracker_wp/",
"devDependencies": {
"assets-webpack-plugin": "^3.3.0",
"babel-core": "^6.3.15",
"babel-eslint": "^5.0.0-beta4",
"babel-loader": "^6.2.0",
"babel-preset-es2015": "^6.3.13",
"babel-preset-react": "^6.3.13",
"babel-preset-react-hmre": "^1.0.0",
"cross-env": "^1.0.6",
"eslint": "^1.10.3",
"eslint-plugin-babel": "^3.0.0",
"eslint-plugin-react": "^3.11.3",
"eventsource-polyfill": "^0.9.6",
"express": "^4.13.3",
"rimraf": "^2.4.3",
"webpack": "^1.12.9",
"webpack-dev-middleware": "^1.4.0",
"webpack-hot-middleware": "^2.6.0"
},
"dependencies": {
"react": "^0.14.7",
"react-bootstrap": "^0.28.3",
"react-bootstrap-datetimepicker": "0.0.22",
"react-dom": "^0.14.3",
"react-router": "^2.0.0"
}
}
import thumb from './thumb.jpg';
<Image src={thumb} rounded />
var AssetsPlugin = require('assets-webpack-plugin');
var assetsPluginInstance = new AssetsPlugin();
module.exports = {
devtool: 'cheap-module-eval-source-map',
entry: [
'eventsource-polyfill', // necessary for hot reloading with IE
'webpack-hot-middleware/client',
'./src/index'
],
output: {
path: path.join(__dirname, 'dist'),
filename: 'bundle.js',
publicPath: '/static/'
},
plugins: [
new webpack.HotModuleReplacementPlugin(),
new webpack.NoErrorsPlugin(),
assetsPluginInstance
],
module: {
loaders: [{
test: /\.jsx?/,
loaders: ['babel'],
include: path.join(__dirname, 'src')
}]
}
};
import thumb from 'thumb.jpg'; <Image src={thumb} rounded />
var path = require('path');
var express = require('express');
var webpack = require('webpack');
var config = require('./webpack.config.dev');
var app = express();
var compiler = webpack(config);
app.use(require('webpack-dev-middleware')(compiler, {
noInfo: true,
publicPath: config.output.publicPath
}));
app.use(require('webpack-hot-middleware')(compiler));
app.get('*', function(req, res) {
res.sendFile(path.join(__dirname, 'index.html'));
});
app.listen(3000, 'localhost', function(err) {
if (err) {
console.log(err);
return;
}
console.log('Listening at http://localhost:3000');
});