1
0
Fork 0
chronos/Gruntfile.js

109 lines
1.8 KiB
JavaScript

module.exports = function (grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
webpack: {
app: {
entry: './app/index.jsx',
output: {
filename: 'bundle.js',
path: './dist/app/'
},
resolve: {
extensions: ['.js', '.jsx'],
},
module: {
loaders: [
{
test: /\.jsx?$/,
exclude: /node_modules/,
loader: 'babel-loader',
query: {
sourceMap: true,
presets: ['env', 'react']
}
}
]
}
}
},
copy: {
app: {
files: [
{
expand: true,
cwd: './app/',
src: ['index.html'],
dest: './dist/app/'
},
{
expand: true,
cwd: './app/',
src: ['assets/**'],
dest: './dist/app/assets/'
},
{
expand: true,
cwd: './node_modules/bootstrap/',
src: ['dist/**'],
dest: './dist/app/assets/bootstrap/'
}
]
}
},
babel: {
options: {
sourceMap: true,
presets: [
['env', {
targets: {
node: 'current'
}
}]
]
},
server: {
files: [
{
expand: true,
cwd: './server/',
src: ['**/*.js'],
dest: './dist/server/'
}
]
}
},
eslint: {
app: {
files: [
{
expand: true,
cwd: './app/',
src: ['**/*.js*'],
dest: './dist/app/'
}
]
},
server: {
files: [
{
expand: true,
cwd: './server/',
src: ['**/*.js'],
dest: './dist/server/'
}
]
}
}
});
grunt.loadNpmTasks('grunt-webpack');
grunt.loadNpmTasks('grunt-babel');
grunt.loadNpmTasks('grunt-eslint');
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.registerTask('all', ['eslint', 'webpack', 'copy', 'babel']);
grunt.registerTask('default', ['all']);
};