91 lines
2.2 KiB
JavaScript
91 lines
2.2 KiB
JavaScript
module.exports = function(grunt) {
|
|
grunt.initConfig({
|
|
mochaTest: {
|
|
test: {
|
|
options: {
|
|
reporter: 'list',
|
|
require: '@babel/register',
|
|
noFail: false,
|
|
recursive: true,
|
|
captureFile: false,
|
|
},
|
|
src: ['test/**/*.spec.js'],
|
|
},
|
|
},
|
|
watch: {
|
|
scripts: {
|
|
files: ['src/**/*.js'],
|
|
tasks: ['default'],
|
|
options: {
|
|
spawn: false,
|
|
},
|
|
},
|
|
},
|
|
browserify: {
|
|
development: {
|
|
files: [{
|
|
expand: true,
|
|
cwd: 'src/exports/',
|
|
src: ['*.js'],
|
|
dest: 'dist/',
|
|
ext: '.js',
|
|
extDot: 'first',
|
|
}],
|
|
options: {
|
|
browserifyOptions: {debug: true},
|
|
transform: [
|
|
[
|
|
'babelify', {
|
|
'presets': ['@babel/preset-env', '@babel/preset-flow'],
|
|
'plugins': [
|
|
'@babel/plugin-proposal-class-properties',
|
|
'@babel/plugin-proposal-private-methods',
|
|
'@babel/plugin-proposal-optional-chaining',
|
|
],
|
|
},
|
|
],
|
|
],
|
|
},
|
|
},
|
|
production: {
|
|
files: [{
|
|
expand: true,
|
|
cwd: 'src/exports/',
|
|
src: ['*.js'],
|
|
dest: 'dist/',
|
|
ext: '.min.js',
|
|
extDot: 'first',
|
|
}],
|
|
options: {
|
|
browserifyOptions: {debug: false},
|
|
transform: [
|
|
[
|
|
'babelify', {
|
|
'presets': ['@babel/preset-env', '@babel/preset-flow'],
|
|
'plugins': [
|
|
'@babel/plugin-proposal-class-properties',
|
|
'@babel/plugin-proposal-private-methods',
|
|
'@babel/plugin-proposal-optional-chaining',
|
|
],
|
|
},
|
|
'uglifyify', {
|
|
sourceMap: true,
|
|
},
|
|
],
|
|
],
|
|
},
|
|
},
|
|
},
|
|
|
|
});
|
|
|
|
grunt.loadNpmTasks('grunt-browserify');
|
|
grunt.loadNpmTasks('grunt-mocha-test');
|
|
grunt.loadNpmTasks('grunt-contrib-watch');
|
|
|
|
grunt.registerTask('test', 'mochaTest');
|
|
|
|
grunt.registerTask('default',
|
|
['browserify:development', 'browserify:production']);
|
|
};
|