90 lines
2.4 KiB
JavaScript
90 lines
2.4 KiB
JavaScript
|
const path = require('path');
|
||
|
const MonacoWebpackPlugin = require('monaco-editor-webpack-plugin');
|
||
|
const HtmlWebpackPlugin = require('html-webpack-plugin');
|
||
|
const {CleanWebpackPlugin} = require('clean-webpack-plugin');
|
||
|
const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin');
|
||
|
const ReactRefreshWebpackPlugin = require('@pmmmwh/react-refresh-webpack-plugin');
|
||
|
|
||
|
module.exports = {
|
||
|
mode: 'development',
|
||
|
entry: {
|
||
|
index: path.resolve(__dirname, '../src/index.tsx')
|
||
|
},
|
||
|
module: {
|
||
|
// modulePathIgnorePatterns: ['libs'],
|
||
|
rules: [
|
||
|
// {
|
||
|
// test: /\.tsx?$/,
|
||
|
// use: [
|
||
|
// {
|
||
|
// loader: 'ts-loader',
|
||
|
// options: {
|
||
|
// transpileOnly: true
|
||
|
// }
|
||
|
// }
|
||
|
// ],
|
||
|
// include: path.resolve(__dirname, '../src')
|
||
|
// },
|
||
|
{
|
||
|
test: /\.(ts|tsx)$/,
|
||
|
include: [path.resolve(__dirname, '../src')],
|
||
|
enforce: 'pre',
|
||
|
use: ['babel-loader']
|
||
|
},
|
||
|
{
|
||
|
test: /\.woff2?(\?v=[0-9]\.[0-9]\.[0-9])?$/,
|
||
|
use: 'url-loader?limit=10000',
|
||
|
include: path.resolve(__dirname, '../src')
|
||
|
},
|
||
|
{
|
||
|
test: /\.(ttf|eot|svg)(\?[\s\S]+)?$/,
|
||
|
use: 'file-loader',
|
||
|
include: path.resolve(__dirname, '../src')
|
||
|
},
|
||
|
{
|
||
|
test: /\.css$/,
|
||
|
use: ['style-loader', 'css-loader'],
|
||
|
// include: path.resolve(__dirname, '../src')
|
||
|
},
|
||
|
{
|
||
|
test: /\.ttf$/,
|
||
|
use: ['file-loader']
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
plugins: [
|
||
|
new CleanWebpackPlugin({cleanStaleWebpackAssets: false}),
|
||
|
new HtmlWebpackPlugin({
|
||
|
template: path.resolve(__dirname, './template.html'),
|
||
|
}),
|
||
|
new MonacoWebpackPlugin(),
|
||
|
new ForkTsCheckerWebpackPlugin(),
|
||
|
new ReactRefreshWebpackPlugin(),
|
||
|
],
|
||
|
resolve: {
|
||
|
extensions: ['.tsx', '.ts', '.js', '.html'],
|
||
|
modules: [
|
||
|
'node_modules',
|
||
|
path.resolve(__dirname, '../libs/amis/packages')
|
||
|
],
|
||
|
alias: {
|
||
|
"@amis": path.resolve(__dirname, '../libs/amis/packages')
|
||
|
}
|
||
|
},
|
||
|
devtool: 'inline-source-map',
|
||
|
devServer: {
|
||
|
contentBase: path.join(__dirname, '../dist'),
|
||
|
publicPath: path.join(__dirname, '../dist'),
|
||
|
compress: true,
|
||
|
port: 9000,
|
||
|
hot: true,
|
||
|
proxy: {
|
||
|
'/api': 'http://localhost:3000'
|
||
|
}
|
||
|
},
|
||
|
output: {
|
||
|
filename: '[name].bundle.js',
|
||
|
publicPath: '/',
|
||
|
path: path.resolve(__dirname, '../dist')
|
||
|
}
|
||
|
};
|