| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- /**
- * Copyright 1999-2019 Seata.io Group.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- const path = require('path');
- const HtmlWebpackPlugin = require('html-webpack-plugin');
- const MiniCssExtractPlugin = require('mini-css-extract-plugin');
- const CopyWebpackPlugin = require('copy-webpack-plugin');
- const isDev = process.env.NODE_ENV !== 'production';
- function resolve(dir) {
- return path.join(__dirname, '..', dir);
- }
- module.exports = {
- entry: {
- main: './src/index.tsx',
- },
- output: {
- filename: './js/[name].js',
- path: path.resolve(__dirname, '../dist'),
- },
- resolve: {
- extensions: ['.js', '.jsx', '.json', '.ts', '.tsx'],
- alias: {
- '@': resolve('src'),
- utils: resolve('src/utils'),
- components: resolve('src/components'),
- pages: resolve('src/pages'),
- },
- },
- node: {
- fs: 'empty'
- },
- module: {
- rules: [
- {
- test: /\.(css|scss)$/,
- use: [isDev ? 'style-loader' : MiniCssExtractPlugin.loader, 'css-loader', 'sass-loader'],
- },
- {
- test: /\.(js|jsx)$/,
- loader: 'eslint-loader',
- enforce: 'pre',
- include: [resolve('src')],
- },
- {
- test: /\.(js|jsx|ts|tsx)$/,
- include: [resolve('src')],
- use: ['babel-loader'],
- },
- {
- test: [/\.bmp$/, /\.gif$/, /\.jpe?g$/, /\.png$/],
- loader: 'url-loader',
- options: {
- limit: 10000,
- name: '/img/[name].[hash:8].[ext]',
- },
- },
- {
- test: /\.(ttf|woff|svg)$/,
- use: [
- {
- loader: 'url-loader',
- options: {
- name: '/fonts/[name].[hash:8].[ext]',
- },
- },
- ],
- },
- ],
- },
- plugins: [
- new HtmlWebpackPlugin({
- filename: 'index.html',
- template: './public/index.html',
- minify: !isDev,
- }),
- new CopyWebpackPlugin([
- {
- from: resolve('public'),
- to: './',
- ignore: ['index.html'],
- },
- ]),
- ],
- };
|