/** * Webpack configuration * * @author Codex Team * @copyright Khaydarov Murod */ 'use strict'; var pkg = require('./package.json'); var path = require('path'); /** * Environment * @type {any} */ const NODE_ENV = process.env.NODE_ENV || 'development'; const VERSION = process.env.VERSION || pkg.version; /** * Plugins for bundle * @type {webpack} */ var webpack = require('webpack'); var ExtractTextWebpackPlugin = require('extract-text-webpack-plugin'); module.exports = { entry: { 'codex-editor': './codex' }, output: { filename: '[name].js', library: [ 'CodexEditor' ] }, watch: true, watchOptions: { aggregateTimeOut: 50 }, devtool: NODE_ENV == 'development' ? 'source-map' : null, resolve : { fallback: path.join(__dirname, 'node_modules'), modulesDirectories : [ './modules' ], extensions : ['', '.js', '.json'] }, resolveLoader : { modulesDirectories: [ './node_modules' ], moduleTemplates: ['*-webpack-loader', '*-web-loader', '*-loader', '*'], extensions: ['', '.js'] }, plugins: [ /** Pass variables into modules */ new webpack.DefinePlugin({ NODE_ENV: JSON.stringify(NODE_ENV), VERSION: JSON.stringify(VERSION) }), /** Минифицируем CSS и JS */ // new webpack.optimize.UglifyJsPlugin({ /** Disable warning messages. Cant disable uglify for 3rd party libs such as html-janitor */ // compress: { // warnings: false // } // }), /** Block biuld if errors found */ // new webpack.NoErrorsPlugin(), ], module : { loaders : [ { test : /\.js$/, exclude: /node_modules/, loader : 'babel', query: { presets: [ __dirname + '/node_modules/babel-preset-es2015' ] } }, { test : /\.js$/, loader: 'eslint-loader?fix=true', exclude: /node_modules/ }, { test : /\.css$/, exclude: /node_modules/, loader: ExtractTextWebpackPlugin.extract('style-loader', 'css-loader') } ] } };