var path = require('path'); var HtmlWebPackPlugin = require("html-webpack-plugin"); var AddAssetHtmlPlugin = require("add-asset-html-webpack-plugin"); var ExtractTextPlugin = require('extract-text-webpack-plugin'); const webpack = require('webpack'); module.exports = { entry: "./src/index.tsx", output: { filename: "bundle.js", path: path.resolve(__dirname, 'dist') }, // Enable sourcemaps for debugging webpack's output. devtool: "source-map", resolve: { alias: { "dat.gui": path.resolve(__dirname, './node_modules/dat.gui/build/dat.gui.js'), // "stats-js": path.resolve(__dirname, './node_modules/stats.js/src/stats.js'), }, // Add '.ts' and '.tsx' as resolvable extensions. extensions: [".ts", ".tsx", ".js", "json"] }, module: { loaders: [ // All files with a '.ts' or '.tsx' extension will be handled by 'awesome-typescript-loader'. { test: /\.tsx?$/, loader: "awesome-typescript-loader" }, { test: /\.[(png)|(jpg)|(obj)]$/, loader: "file-loader" }, { test: /\.css$/, use: ExtractTextPlugin.extract({ use: 'css-loader' }) }, { test: /\.less$/, use: [ { loader: "style-loader" }, { loader: "css-loader" }, { loader: "less-loader", options: { strictMath: true, noIeCompat: true } } ] } ] }, // Other options... devServer: { contentBase: path.join(__dirname, "dist"), compress: true, port: 7777 }, plugins: [ new webpack.DllReferencePlugin({ context: '.', manifest: require(path.resolve(__dirname, "./manifest.json")) }), new HtmlWebPackPlugin({ title: "webCAD" }), new AddAssetHtmlPlugin({ filepath: path.resolve(__dirname, "./dist/dll.js") }), new ExtractTextPlugin('styles.css'), new webpack.ProvidePlugin({ $: "jquery", jQuery: "jquery", ReactDOM: 'react-dom', React: 'react' }), new webpack.optimize.ModuleConcatenationPlugin() ] };