1
0
Fork 0
chronos/Gruntfile.js

159 lines
2.9 KiB
JavaScript
Raw Normal View History

2017-03-02 09:55:04 +08:00
module.exports = function (grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
webpack: {
app: {
2017-03-27 21:42:01 +08:00
entry: __dirname + '/app/index.jsx',
2017-03-02 09:55:04 +08:00
output: {
filename: 'bundle.js',
2017-03-27 21:42:01 +08:00
path: __dirname + '/dist/app/'
2017-03-02 09:55:04 +08:00
},
resolve: {
extensions: ['.js', '.jsx'],
},
2017-03-02 09:55:04 +08:00
module: {
2017-03-27 21:42:01 +08:00
rules: [
2017-03-02 09:55:04 +08:00
{
test: /\.jsx?$/,
exclude: /node_modules/,
2017-03-27 21:42:01 +08:00
use: [
{
loader: 'babel-loader',
options: {
sourceMap: true,
presets: [
['env', {
targets: {
browsers: ['last 2 versions']
},
modules: false
}],
'react'
]
2017-03-27 21:42:01 +08:00
}
}
]
},
{
test: /\.css$/,
use: [
'style-loader',
{
loader: 'css-loader',
options: {
sourceMap: true,
2017-03-27 21:42:01 +08:00
modules: true,
importLoaders: 1,
localIdentName: '[name]--[local]--[hash:base64:8]'
2017-03-27 21:42:01 +08:00
}
},
{
loader: 'postcss-loader'
2017-03-27 21:42:01 +08:00
}
]
2017-03-02 09:55:04 +08:00
}
]
}
}
},
copy: {
app: {
files: [
{
expand: true,
2017-03-27 21:42:01 +08:00
cwd: __dirname + '/app/',
2017-03-02 09:55:04 +08:00
src: ['index.html'],
2017-03-27 21:42:01 +08:00
dest: __dirname + '/dist/app/'
2017-03-02 09:55:04 +08:00
},
{
expand: true,
2017-03-27 21:42:01 +08:00
cwd: __dirname + '/app/',
2017-03-02 09:55:04 +08:00
src: ['assets/**'],
2017-03-27 21:42:01 +08:00
dest: __dirname + '/dist/app/assets/'
2017-03-23 23:47:27 +08:00
},
{
expand: true,
2017-03-27 21:42:01 +08:00
cwd: __dirname + '/node_modules/oidc-client/',
2017-03-23 23:47:27 +08:00
src: ['dist/**'],
2017-03-27 21:42:01 +08:00
dest: __dirname + '/dist/app/assets/oidc-client/'
2017-03-02 09:55:04 +08:00
}
]
}
},
babel: {
options: {
sourceMap: true,
presets: [
['env', {
targets: {
node: 'current'
},
modules: 'commonjs'
2017-03-02 09:55:04 +08:00
}]
]
},
server: {
files: [
{
expand: true,
2017-03-27 21:42:01 +08:00
cwd: __dirname + '/server/',
src: ['**/*.js'],
2017-03-27 21:42:01 +08:00
dest: __dirname + '/dist/server/'
2017-03-02 09:55:04 +08:00
}
]
}
},
eslint: {
app: {
files: [
{
expand: true,
2017-03-27 21:42:01 +08:00
cwd: __dirname + '/app/',
src: ['**/*.js*'],
2017-03-27 21:42:01 +08:00
dest: __dirname + '/dist/app/'
}
]
},
server: {
files: [
{
expand: true,
2017-03-27 21:42:01 +08:00
cwd: __dirname + '/server/',
src: ['**/*.js'],
2017-03-27 21:42:01 +08:00
dest: __dirname + '/dist/server/'
}
]
}
},
watch: {
app: {
files: '**/*.js*',
tasks: ['app'],
options: {
cwd: __dirname + '/app/'
}
},
server: {
files: '**/*.js',
tasks: ['server'],
options: {
cwd: __dirname + '/server/'
}
}
2017-03-02 09:55:04 +08:00
}
});
grunt.loadNpmTasks('grunt-webpack');
grunt.loadNpmTasks('grunt-babel');
grunt.loadNpmTasks('grunt-eslint');
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-contrib-watch');
2017-03-02 09:55:04 +08:00
grunt.registerTask('all', ['eslint', 'webpack', 'copy', 'babel']);
grunt.registerTask('app', ['eslint:app', 'webpack:app', 'copy:app']);
grunt.registerTask('server', ['eslint:server', 'babel:server']);
2017-03-02 09:55:04 +08:00
grunt.registerTask('default', ['all']);
};