var path = require("path"); var underscore = require("underscore"); var webpack = require("webpack"); var defs = require("./package.defs.js"); var devWebpackConfig = require("./webpack.config.js"); var distWebpackConfig = underscore.extend( underscore.clone(devWebpackConfig), { devtool: false, output: { path: defs.LIB_DIR, filename: defs.FILENAME_DIST, library: defs.LIBRARY_NAME, libraryTarget: "umd", umdNamedDefine: true }, plugins: [ new webpack.optimize.UglifyJsPlugin({compress: false}) ] } ); module.exports = function (grunt) { grunt.loadNpmTasks("grunt-contrib-clean"); grunt.loadNpmTasks("grunt-karma"); grunt.loadNpmTasks("grunt-webpack"); grunt.loadNpmTasks("gruntify-eslint"); grunt.initConfig({ clean: { options: { force: true, }, all: [defs.LIB_DIR] }, eslint: { sources: { src: ["./src/**/*.js"] }, tests: { src: ["./tests/**/*.spec.js"] } }, karma: { options: { configFile: "karma.conf.js" }, dist: { browsers: ["ChromiumHeadless"], reporters: ["progress"], singleRun: true, webpackMiddleware: { noInfo: true, stats: "errors-only" } }, dev: { browsers: ["ChromiumHeadless"], mochaReporter: { ignoreSkipped: false }, reporters: ["mocha"], singleRun: true } }, webpack: { dev: devWebpackConfig, dist: distWebpackConfig } }); grunt.registerTask("dist", [ "clean", "eslint", "karma:dist", "webpack" ]); };