forked from Sparticuz/chromium
-
Notifications
You must be signed in to change notification settings - Fork 0
/
webpack.config.js
96 lines (95 loc) · 2.9 KB
/
webpack.config.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
const path = require('path');
const webpack = require('webpack');
const NodePolyfillPlugin = require('node-polyfill-webpack-plugin');
module.exports = {
mode: 'production',
entry: './source/index.ts',
experiments: {
outputModule:true
},
// devtool: 'inline-source-map',
output: {
filename: 'main.js',
path: path.resolve(__dirname, 'dist'),
// globalObject: 'this',
library: {
name: 'chromey',
type: 'var',
export: 'default',
},
module: true
},
target: 'web',
resolve: {
modules: ['node_modules'],
// preferRelative: true,
extensions: ['.ts', '.tsx', '.js', '.jsx'],
// Use our versions of Node modules.
fallback: {
fs: require.resolve("browserify-fs"),
/* assert: require.resolve("assert"), // has /
constants : require.resolve("constants-browserify"),
http: require.resolve('stream-http'),
https: require.resolve('https-browserify'),
os: require.resolve('os-browserify/browser'),
stream: require.resolve('stream-browserify'),
url: require.resolve('url'), // has /
util: require.resolve("util"), // has */
zlib: require.resolve("browserify-zlib")
},
alias: {
//fs: 'browserfs/dist/shims/fs.js',
buffer: 'browserfs/dist/shims/buffer.js',
path: 'browserfs/dist/shims/path.js',
processGlobal: 'browserfs/dist/shims/process.js',
bufferGlobal: 'browserfs/dist/shims/bufferGlobal.js',
bfsGlobal: require.resolve('browserfs'),
},
},
// REQUIRED to avoid issue "Uncaught TypeError: BrowserFS.BFSRequire is not a function"
// See: https://github.com/jvilk/BrowserFS/issues/201
module: {
noParse: /browserfs\.js/,
rules: [
{
test: /\.(js|jsx|tsx|ts)$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env'],
plugins: [
'@babel/plugin-proposal-class-properties',
'@babel/plugin-transform-modules-commonjs',
],
},
},
},
{
test: /\.tsx?$/,
use: 'ts-loader',
exclude: /node_modules/,
},
],
},
plugins: [
// Expose BrowserFS, process, and Buffer globals.
// NOTE: If you intend to use BrowserFS in a script tag, you do not need
// to expose a BrowserFS global.
new webpack.NormalModuleReplacementPlugin(/node:/, (resource) => {
resource.request = resource.request.replace(/^node:/, '');
}),
new webpack.ProvidePlugin({
BrowserFS: 'bfsGlobal',
process: 'processGlobal',
Buffer: 'bufferGlobal',
}),
new NodePolyfillPlugin({
excludeAliases: ['fs', 'buffer'/*, 'path'*/, 'Buffer'],
}),
],
// DISABLE Webpack's built-in process and Buffer polyfills!
node: {
global: true,
},
};