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
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
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',
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user