UNPKG

reusable-react-components

Version:
72 lines (70 loc) 1.98 kB
const path = require('path') const CleanWebpackPlugin = require('clean-webpack-plugin') const ExtractTextPlugin = require('extract-text-webpack-plugin') const StyleLintPlugin = require('stylelint-webpack-plugin') const plugin = new ExtractTextPlugin({ filename: '[name].css' }) module.exports = { entry: './src/index.js', output: { path: path.resolve(__dirname, 'build'), filename: 'index.js', libraryTarget: 'commonjs2' // THIS IS THE MOST IMPORTANT LINE! :mindblow: I wasted more than 2 days until realize this was the line most important in all this guide. }, module: { rules: [ { enforce: 'pre', test: /\.js$/, exclude: /node_modules/, loader: 'eslint-loader' }, { test: /\.js$/, include: path.resolve(__dirname, 'src'), exclude: /(node_modules|bower_components|build)/, use: { loader: 'babel-loader', options: { presets: ['env'] } } }, { test: /\.scss$/, use: plugin.extract({ // use, fallback: 'style-loader', use: [ { loader: 'css-loader', options: { importLoaders: 3 } }, { loader: 'postcss-loader', options: { plugins: () => ([require('autoprefixer')()]) } }, { loader: 'sass-loader' } ], fallback: 'style-loader' }) } ] }, plugins: [ new CleanWebpackPlugin(path.resolve(__dirname, 'build')), plugin, new StyleLintPlugin({ configFile: '.stylelintrc', context: './src/assets/styles', files: '**/*.scss', failOnError: false, quiet: false }) ], externals: { react: 'commonjs react' // this line is just to use the React dependency of our parent-testing-project instead of using our own React. } }