1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- import * as path from 'path'
- import * as url from 'url'
- const __dirname = url.fileURLToPath(new URL('.', import.meta.url))
- const externals = {}
- for (const key of [
- 'child_process',
- 'crypto',
- 'dns',
- 'fs',
- 'http',
- 'https',
- 'net',
- 'path',
- 'querystring',
- 'tls',
- 'tty',
- 'zlib',
- '../build/Release/cpufeatures.node',
- './crypto/build/Release/sshcrypto.node',
- ]) {
- externals[key] = `commonjs ${key}`
- }
- const config = {
- name: 'tabby-web-entry',
- target: 'web',
- entry: {
- preload: path.resolve(__dirname, 'entry.preload.ts'),
- bundle: path.resolve(__dirname, 'entry.ts'),
- },
- mode: process.env.TABBY_DEV ? 'development' : 'production',
- optimization:{
- minimize: false,
- },
- context: __dirname,
- devtool: 'source-map',
- output: {
- path: path.join(__dirname, 'dist'),
- pathinfo: true,
- filename: '[name].js',
- publicPath: 'auto',
- },
- resolve: {
- modules: ['../app/node_modules', 'node_modules', '../node_modules', '../app/assets/'].map(x => path.join(__dirname, x)),
- extensions: ['.ts', '.js'],
- fallback: {
- stream: path.join(__dirname, 'node_modules/stream-browserify/index.js'),
- assert: path.join(__dirname, 'node_modules/assert/assert.js'),
- constants: path.join(__dirname, 'node_modules/constants-browserify/constants.json'),
- util: path.join(__dirname, 'node_modules/util/util.js'),
- },
- },
- module: {
- rules: [
- {
- test: /\.ts$/,
- use: {
- loader: 'ts-loader',
- options: {
- configFile: path.resolve(__dirname, 'tsconfig.json'),
- },
- },
- },
- { test: /\.scss$/, use: ['style-loader', 'css-loader', 'sass-loader'] },
- { test: /\.css$/, use: ['style-loader', 'css-loader', 'sass-loader'] },
- {
- test: /\.(png|svg|ttf|eot|otf|woff|woff2)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
- type: 'asset',
- },
- ],
- },
- externals,
- }
- export default () => config
|