@cainthus/alex-library
Version:
Component React library for Cainthus - Alex Dashboard.
87 lines (85 loc) • 1.91 kB
JavaScript
const path = require('path');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const CopyWebpackPlugin = require('copy-webpack-plugin');
module.exports = {
devtool: 'source-map',
entry: './src/index.ts',
output: {
path: path.resolve(__dirname, 'build', 'dist'),
filename: 'index.js',
libraryTarget: 'commonjs'
},
externals: {
react: {
commonjs: 'react',
commonjs2: 'react',
amd: 'react',
root: 'react'
},
nprogress: {
commonjs: 'nprogress',
commonjs2: 'nprogress',
amd: 'nprogress',
root: 'nprogress'
},
moment: {
commonjs: 'moment',
commonjs2: 'moment',
amd: 'moment',
root: 'moment'
},
'react-dom': {
commonjs: 'react-dom',
commonjs2: 'react-dom',
amd: 'ReactDOM',
root: 'ReactDOM'
},
'react-router-dom': {
commonjs: 'react-router-dom',
commonjs2: 'react-router-dom',
amd: 'ReactRouter',
root: 'ReactRouter'
},
'react-infinite-calendar': {
commonjs: 'react-infinite-calendar',
commonjs2: 'react-infinite-calendar',
amd: 'react-infinite-calendar',
root: 'react-infinite-calendar'
},
recharts: {
commonjs: 'recharts',
commonjs2: 'recharts',
amd: 'recharts',
root: 'recharts'
}
},
module: {
rules: [
{
test: /\.tsx?$/,
exclude: /node_modules/,
use: {
loader: 'ts-loader'
}
},
{
test: /\.scss$/,
use: [MiniCssExtractPlugin.loader, 'css-loader', 'sass-loader']
}
]
},
resolve: {
extensions: ['.ts', '.tsx', '.js']
},
plugins: [
new MiniCssExtractPlugin({
filename: 'style.css'
}),
new CopyWebpackPlugin([
{
from: 'src/index.export.js',
to: path.resolve(__dirname, 'build', 'index.js')
}
])
]
};