@benshi.ai/js-sdk
Version:
Benshi SDK
106 lines (99 loc) • 2.11 kB
JavaScript
const path = require('path')
const getLoaderConfig = (outputFileName) => ({
mode: process.env.NODE_ENV ? 'development' : 'production',
watch: process.env.NODE_ENV === 'dev',
entry: {
lib: path.resolve(__dirname, './src/loader/index.ts'),
},
output: {
path: path.resolve(__dirname, './lib'),
filename: outputFileName,
globalObject: 'this',
library: {
name: '[name]',
type: 'umd'
}
},
resolve: {
extensions: ['.tsx', '.ts', '.js'],
alias: {
'@': path.resolve(__dirname, 'src')
},
fallback: {
}
},
module: {
rules: [
{
test: /\.tsx?$/,
loader: 'babel-loader',
exclude: /node_modules/,
},
],
}
})
const getCommonConfig = (outputFileName) => ({
mode: process.env.NODE_ENV ? 'development' : 'production',
watch: process.env.NODE_ENV === 'dev',
entry: {
lib: path.resolve(__dirname, './src/index.ts'),
init: path.resolve(__dirname, './src/init.ts'),
},
output: {
path: path.resolve(__dirname, './lib'),
filename: outputFileName,
globalObject: 'this',
library: {
name: '[name]',
type: 'umd'
}
},
resolve: {
extensions: ['.tsx', '.ts', '.js'],
alias: {
'@': path.resolve(__dirname, 'src')
},
fallback: {
}
},
module: {
rules: [
{
test: /\.tsx?$/,
loader: 'babel-loader',
exclude: /node_modules/,
},
],
}
})
const serverConfig = {
...getCommonConfig('[name].node.js'),
target: 'node'
}
const cdnConfig = {
...getCommonConfig('[name].js'),
resolve: {
extensions: ['.tsx', '.ts', '.js'],
alias: {
"./BsNetworkNodeFetch": false,
'@': path.resolve(__dirname, 'src')
},
fallback: {
os: false
}
}
}
const loaderConfig = {
...getLoaderConfig('[name].loader.js'),
resolve: {
extensions: ['.tsx', '.ts', '.js'],
alias: {
"./BsNetworkNodeFetch": false,
'@': path.resolve(__dirname, 'src')
},
fallback: {
os: false
}
}
}
module.exports = [serverConfig, cdnConfig, loaderConfig]