Last active
August 29, 2015 14:23
-
-
Save botanicus/6442726ce2028b9af156 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
'use strict'; | |
var mountFolder = function (connect, dir) { | |
return connect.static(require('path').resolve(dir)); | |
}; | |
var webpackDistConfig = require('./webpack.dist.config.js'), | |
webpackDevConfig = require('./webpack.config.js'); | |
module.exports = function (grunt) { | |
// Let *load-grunt-tasks* require everything | |
require('load-grunt-tasks')(grunt); | |
// Read configuration from package.json | |
var pkgConfig = grunt.file.readJSON('package.json'); | |
grunt.initConfig({ | |
pkg: pkgConfig, | |
webpack: { | |
options: webpackDistConfig, | |
dist: { | |
cache: false | |
} | |
}, | |
'webpack-dev-server': { | |
options: { | |
hot: true, | |
port: 8000, | |
webpack: webpackDevConfig, | |
publicPath: '/assets/', | |
contentBase: './<%= pkg.src %>/' | |
}, | |
start: { | |
keepAlive: true | |
} | |
}, | |
connect: { | |
options: { | |
port: 8000 | |
}, | |
dist: { | |
options: { | |
keepalive: true, | |
middleware: function (connect) { | |
return [ | |
mountFolder(connect, pkgConfig.dist) | |
]; | |
} | |
} | |
} | |
}, | |
open: { | |
options: { | |
delay: 500 | |
}, | |
dev: { | |
path: 'http://localhost:<%= connect.options.port %>/webpack-dev-server/' | |
}, | |
dist: { | |
path: 'http://localhost:<%= connect.options.port %>/' | |
} | |
}, | |
copy: { | |
dist: { | |
files: [ | |
// includes files within path | |
{ | |
flatten: true, | |
expand: true, | |
src: ['<%= pkg.src %>/*'], | |
dest: '<%= pkg.dist %>/', | |
filter: 'isFile' | |
}, | |
{ | |
flatten: true, | |
expand: true, | |
src: ['<%= pkg.src %>/images/*'], | |
dest: '<%= pkg.dist %>/images/' | |
} | |
] | |
} | |
}, | |
clean: { | |
dist: { | |
files: [{ | |
dot: true, | |
src: [ | |
'<%= pkg.dist %>' | |
] | |
}] | |
} | |
} | |
}); | |
grunt.registerTask('serve', function (target) { | |
if (target === 'dist') { | |
return grunt.task.run(['build', 'open:dist', 'connect:dist']); | |
} | |
grunt.task.run([ | |
'open:dev', | |
'webpack-dev-server' | |
]); | |
}); | |
grunt.registerTask('build', ['clean', 'copy', 'webpack']); | |
grunt.registerTask('default', []); | |
}; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* Webpack development server configuration | |
* | |
* This file is set up for serving the webpack-dev-server, which will watch for changes and recompile as required if | |
* the subfolder /webpack-dev-server/ is visited. Visiting the root will not automatically reload. | |
*/ | |
'use strict'; | |
var webpack = require('webpack'); | |
module.exports = { | |
output: { | |
filename: 'main.js', | |
publicPath: '/assets/' | |
}, | |
cache: true, | |
debug: true, | |
devtool: false, | |
entry: [ | |
'webpack/hot/only-dev-server', | |
'./src/components/main.js' | |
], | |
stats: { | |
colors: true, | |
reasons: true | |
}, | |
resolve: { | |
extensions: ['', '.js', '.jsx'], | |
alias: { | |
'styles': __dirname + '/src/styles', | |
'mixins': __dirname + '/src/mixins', | |
'components': __dirname + '/src/components/', | |
'stores': __dirname + '/src/stores/', | |
'actions': __dirname + '/src/actions/' | |
} | |
}, | |
module: { | |
preLoaders: [{ | |
test: /\.(js|jsx)$/, | |
exclude: /node_modules/, | |
loader: 'jsxhint' | |
}], | |
loaders: [{ | |
test: /\.(js|jsx)$/, | |
exclude: /node_modules/, | |
loader: 'react-hot!babel-loader' | |
}, { | |
test: /\.css$/, | |
loader: 'style-loader!css-loader' | |
}, { | |
test: /\.json$/, | |
loader: 'json-loader' | |
}, { | |
test: /\.(png|jpg|woff|woff2)$/, | |
loader: 'url-loader?limit=8192' | |
}] | |
}, | |
plugins: [ | |
new webpack.HotModuleReplacementPlugin(), | |
new webpack.NoErrorsPlugin() | |
] | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I'm running
grunt serve