Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const path = require('path');
- const ExtractTextPlugin = require('extract-text-webpack-plugin');
- module.exports = {
- entry: ['./src/components/index.js', './src/styles/main.scss'],
- output: {
- path: path.join(__dirname, './dist'),
- filename: 'bundle.js',
- libraryTarget: 'commonjs2',
- publicPath: '/dist/',
- umdNamedDefine: true,
- },
- module: {
- rules: [
- {
- test: /\.(js|jsx)$/,
- include: path.resolve(__dirname, 'src'),
- exclude: /node_modules/,
- use: ['babel-loader'],
- },
- {
- test: /\.css$/,
- use: [
- {
- loader: 'style-loader', // creates style nodes from JS strings
- },
- {
- loader: 'css-loader', // translates CSS into CommonJS
- },
- ],
- },
- {
- test: /\.scss$/,
- use: [
- {
- loader: 'style-loader', // creates style nodes from JS strings
- },
- {
- loader: 'css-loader', // translates CSS into CommonJS
- },
- {
- loader: 'sass-loader', // compiles Sass to CSS
- },
- ],
- },
- {
- test: /\.svg$/,
- loader: 'svg-url-loader',
- },
- {
- test: /main\.scss$/,
- use: ExtractTextPlugin.extract({
- fallback: 'style-loader',
- use: [
- { loader: 'css-loader', options: { minimize: true } },
- { loader: 'sass-loader' }
- ]
- })
- // loader: ExtractTextPlugin.extract(['css-loader', 'sass-loader']),
- }
- ],
- },
- plugins: [
- new ExtractTextPlugin({
- filename: 'styles.min.css',
- allChunks: true,
- }),
- ],
- resolve: {
- extensions: ['*', '.js', '.jsx'],
- modules: [path.resolve(__dirname, 'src'), 'node_modules'],
- },
- externals: {
- // Don't bundle react or react-dom
- react: {
- commonjs: 'react',
- commonjs2: 'react',
- amd: 'React',
- root: 'React',
- },
- 'react-dom': {
- commonjs: 'react-dom',
- commonjs2: 'react-dom',
- amd: 'ReactDOM',
- root: 'ReactDOM',
- },
- },
- devServer: {
- contentBase: './dist',
- },
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement