/* global __dirname */ var argv = require("yargs").argv; var path = require("path"); var glob = require("glob"); var CommonsChunkPlugin = require("webpack/lib/optimize/CommonsChunkPlugin"); var extension = ".js"; if (argv.production) { extension = ".min.js" } var testFiles = glob.sync("./src/**/*.[sS]pec.ts"); var uglifyLoaderConfig = { // I want to uglify with mangling only app files, not thirdparty libs test: /\.js$/, exclude: /.spec.js/, // excluding .spec files loader: "uglify" }; var testingFiles = glob.sync("./src/app/**/*.[sS]pec.ts"); var webpackConfig = { entry: { noosfero: './src/app/index.ts', 'noosfero-specs': './src/specs.ts' }, plugins: [ new CommonsChunkPlugin("commons.js")], output: { path: path.join(__dirname, "src"), filename: "[name]" + extension, }, /*plugins: [ new webpack.optimize.CommonsChunkPlugin("common.js") ],*/ resolve: { // Add `.ts` and `.tsx` as a resolvable extension. extensions: ['', '.webpack.js', '.web.js', '.ts', '.tsx', '.js'] }, // Source maps support (or 'inline-source-map' also works) devtool: 'inline-source-map', module: { loaders: [{ test: /\.css$/, loader: "style!css" }, { test: /\.scss$/, loaders: ["style", "css?sourceMap", "sass?sourceMap"] }, { test: /.(png|woff(2)?|eot|ttf|svg)(\?[a-z0-9=\.]+)?$/, loader: 'url-loader?limit=100000' }, { test: /\.tsx?$/, loader: 'ts-loader' }] } }; if (argv.production) { webpackConfig.module.loaders.push(uglifyLoaderConfig); } module.exports = webpackConfig;