-
Notifications
You must be signed in to change notification settings - Fork 0
/
webpack.config.js
47 lines (38 loc) · 1.19 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
const path = require('path');
const ModuleScopePlugin = require('react-dev-utils/ModuleScopePlugin');
const createExpoWebpackConfigAsync = require('@expo/webpack-config');
const extraModules = {
'@babel/runtime': path.resolve(__dirname, './node_modules/@babel/runtime'),
'react': path.resolve(__dirname, './node_modules/react'),
'react-native': path.resolve(__dirname, './node_modules/react-native'),
'react-native-web': path.resolve(__dirname, './node_modules/react-native-web'),
};
const babelLoaderRules = {
test: /\.(js|ts|tsx)$/,
loader: 'babel-loader',
exclude: /node_modules/,
};
module.exports = async function (env, argv) {
const config = await createExpoWebpackConfigAsync(env, argv);
config.module.rules = [
...config.module.rules,
babelLoaderRules,
];
config.module.rules.push({
test: /\.(js|ts|tsx)$/,
loader: 'babel-loader',
exclude: /node_modules/,
});
config.resolve.alias = {
...config.resolve.alias,
...extraModules,
};
config.resolve.plugins = config.resolve.plugins.filter(plugin => {
return !(plugin instanceof ModuleScopePlugin);
});
config.output = {
...config.output,
publicPath: '',
};
return config;
};