strapi/packages/core/helper-plugin/webpack.config.js

65 lines
1.4 KiB
JavaScript
Raw Normal View History

const webpack = require('webpack');
const path = require('path');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const packageJson = require('./package.json');
const nodeModules = [];
[
...Object.keys(packageJson.dependencies),
...Object.keys(packageJson.peerDependencies),
...Object.keys(packageJson.devDependencies),
].forEach(module => {
nodeModules.push(new RegExp(`^${module}(/.+)?$`));
});
module.exports = {
entry: `${__dirname}/lib/src/index.js`,
externals: nodeModules,
mode: 'production',
devtool: 'source-map',
output: {
path: `${__dirname}/build`,
filename: `helper-plugin.js`,
library: {
name: 'helperPlugin',
type: 'umd',
},
umdNamedDefine: true,
},
module: {
rules: [
{
test: /\.js$/,
include: path.resolve(__dirname, 'lib', 'src'),
loader: 'babel-loader',
exclude: /(node_modules)/,
},
{
test: /\.css$/,
use: ['style-loader', 'css-loader'],
},
{
test: /\.(png|svg|jpg|gif)$/,
loader: 'url-loader',
options: {
limit: 8192,
},
},
],
},
resolve: {
extensions: ['*', '.js'],
cacheWithContext: false,
},
plugins: [
new webpack.EnvironmentPlugin({
NODE_ENV: 'production',
}),
new MiniCssExtractPlugin({
filename: 'style.css',
}),
],
};