Files
bee-dashboard/webpack.config.ts
T
nugaon 2a13da1a6c feat: modularisation (#244)
* chore: gitignore for lib directory

* build: packageing for webpack lib build

* build: webpack config

* feat: expose App component with beeApiUrl parameter

* build: tsconfig for library build

* build: main property of package json for tsc build

* refactor: rename beeUrl option to beeApiUrl

* refactor: manange config class instead of process.env calls

* build: babelrc config

* build: babel plugins and presets for webpack build

* chore: serve.js chmod

* build(refactor): webpack build

* refactor: number notation

* chore: webpack and package config change

* build: add babel preset-env

* chore: prepare script also builds component lib

* feat: typegen

* revert: set back prepare command

* build: assets loader config

* feat: beeDebugApiUrl

* refactor: move test files to the test folder because of typegen

* feat: locked api settings

* chore: depcheck ignores

* chore: types check script

* ci: check types

* ci: publish with library

* chore: add webpack as devDep

* chore: locked semver

* chore: remove debug logging

* style: webpack config

* chore: react and react-dom as dependency

* chore: package-lock

* fix: clean package-lock init

* refactor: fix versions in package.json
2021-12-09 11:12:45 +01:00

62 lines
1.4 KiB
TypeScript

import Path from 'path'
import { Configuration } from 'webpack'
// eslint-disable-next-line import/no-anonymous-default-export
export default (): Configuration => {
const entry = Path.resolve(__dirname, 'src', 'App.tsx')
return {
mode: 'production',
entry,
output: {
path: Path.resolve(__dirname, 'lib'),
filename: 'App.js',
library: 'beeDashboard',
libraryTarget: 'umd',
},
resolve: {
extensions: ['.css', '.png', '.svg', '.ttf', '.ts', '.tsx', '.js'],
},
devtool: 'source-map',
externals: {
// Use external version of React
// react: 'root React',
react: 'react',
'react-dom': 'react-dom',
},
target: 'web',
optimization: {
minimize: false,
},
module: {
rules: [
{
test: /\.css$/i,
use: ['style-loader', 'css-loader'],
},
{
test: /\.(png|jp(e*)g|svg|gif)$/,
loader: 'file-loader',
options: {
name: 'assets/[name].[ext]',
},
},
{
test: /\.(ttf)$/,
loader: 'file-loader',
options: {
name: 'assets/fonts/[name].[ext]',
},
},
{
test: /\.(ts|js|tsx|jsx)$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
},
},
],
},
}
}