Skip to content

Instantly share code, notes, and snippets.

@Albert-Gao
Created August 19, 2022 14:28
Show Gist options
  • Save Albert-Gao/3d887bcd0af4c845f7e7095627078085 to your computer and use it in GitHub Desktop.
Save Albert-Gao/3d887bcd0af4c845f7e7095627078085 to your computer and use it in GitHub Desktop.
defaultExpoWebpack
const defaultExpoWebpack = {
mode: 'development',
entry: {
app: [
'/Users/albertgao/codes/self/teaming-cloud/tc-app/node_modules/react-dev-utils/webpackHotDevClient.js',
'/Users/albertgao/codes/self/teaming-cloud/tc-app/node_modules/expo/AppEntry.js',
],
},
stats: 'none',
bail: false,
devtool: 'cheap-module-source-map',
context: '/Users/albertgao/codes/self/teaming-cloud/tc-app',
output: {
publicPath: '/',
path: '/Users/albertgao/codes/self/teaming-cloud/tc-app/web-build',
globalObject: 'this',
pathinfo: true,
filename: 'static/js/bundle.js',
chunkFilename: 'static/js/[name].chunk.js',
},
plugins: [
{
options: {
template:
'/Users/albertgao/codes/self/teaming-cloud/tc-app/node_modules/@expo/webpack-config/web-default/index.html',
templateContent: false,
filename:
'/Users/albertgao/codes/self/teaming-cloud/tc-app/web-build/index.html',
hash: false,
inject: 'body',
scriptLoading: 'blocking',
compile: true,
favicon: false,
minify: false,
cache: true,
showErrors: true,
chunks: 'all',
excludeChunks: [],
chunksSortMode: 'auto',
meta: {},
base: false,
title: 'tc-app',
xhtml: false,
},
version: 4,
platform: 'web',
},
{
replacements: {
WEB_PUBLIC_URL: '/',
WEB_TITLE: 'tc-app',
LANG_ISO_CODE: 'en',
NO_SCRIPT:
'<form action="" style="background-color:#fff;position:fixed;top:0;left:0;right:0;bottom:0;z-index:9999;"><div style="font-size:18px;font-family:Helvetica,sans-serif;line-height:24px;margin:10%;width:80%;"> <p>Oh no! It looks like JavaScript is not enabled in your browser.</p> <p style="margin:20px 0;"> <button type="submit" style="background-color: #4630EB; border-radius: 100px; border: none; box-shadow: none; color: #fff; cursor: pointer; font-weight: bold; line-height: 20px; padding: 6px 16px;">Reload</button> </p> </div> </form>',
ROOT_ID: 'root',
},
},
{
modifyOptions: {},
pwaOptions: {
projectRoot: '/Users/albertgao/codes/self/teaming-cloud/tc-app',
publicPath: '/',
links: [],
},
favicon: {
resizeMode: 'contain',
src: '/Users/albertgao/codes/self/teaming-cloud/tc-app/assets/favicon.png',
backgroundColor: 'transparent',
},
},
{ appPath: '/Users/albertgao/codes/self/teaming-cloud/tc-app' },
{
definitions: {
'process.env': {
NODE_ENV: '"development"',
PUBLIC_URL: '""',
APP_MANIFEST:
'{"name":"tc-app","slug":"tc-app","version":"1.0.0","orientation":"portrait","icon":"./assets/icon.png","userInterfaceStyle":"light","splash":{"image":"./assets/splash.png","resizeMode":"contain","backgroundColor":"#ffffff"},"updates":{"fallbackToCacheTimeout":0},"jsEngine":"hermes","web":{},"sdkVersion":"46.0.0","platforms":["ios","android","web"]}',
},
__DEV__: true,
},
},
{ options: {}, fullBuildTimeout: 200, requestTimeout: 10000 },
{
nodeModulesPath:
'/Users/albertgao/codes/self/teaming-cloud/tc-app/node_modules',
},
{
opts: {
publicPath: '/',
basePath: '',
fileName: 'asset-manifest.json',
transformExtensions: {},
writeToFileEmit: false,
seed: null,
map: null,
sort: null,
},
},
{},
{
profile: false,
modulesCount: 500,
showEntries: false,
showModules: true,
showActiveModules: true,
props: {
logger: {},
nonInteractive: false,
bundleDetails: {
bundleType: 'bundle',
platform: 'web',
entryFile:
'/Users/albertgao/codes/self/teaming-cloud/tc-app/node_modules/expo/AppEntry.js',
dev: true,
minify: false,
},
},
_nextBundleBuildID: 999,
buildID: '',
},
],
module: {
strictExportPresence: false,
rules: [
{ parser: { requireEnsure: false } },
{
oneOf: [
{
test: {},
use: [
'/Users/albertgao/codes/self/teaming-cloud/tc-app/node_modules/html-loader/dist/cjs.js',
],
exclude:
'/Users/albertgao/codes/self/teaming-cloud/tc-app/node_modules/@expo/webpack-config/web-default',
},
{
test: {},
use: {
loader:
'/Users/albertgao/codes/self/teaming-cloud/tc-app/node_modules/url-loader/dist/cjs.js',
options: {
limit: 1000,
esModule: false,
name: 'static/media/[name].[hash:8].[ext]',
},
},
},
{
test: {},
use: {
loader:
'/Users/albertgao/codes/self/teaming-cloud/tc-app/node_modules/@expo/webpack-config/node_modules/babel-loader/lib/index.js',
options: {
babelrc: false,
configFile: true,
sourceType: 'unambiguous',
root: '/Users/albertgao/codes/self/teaming-cloud/tc-app',
compact: false,
sourceMaps: true,
inputSourceMap: true,
cacheIdentifier:
'babel-cache-1-{"filename":"/Users/albertgao/codes/self/teaming-cloud/tc-app/foobar.js","cwd":"/Users/albertgao/codes/self/teaming-cloud/tc-app","sourceFileName":"/Users/albertgao/codes/self/teaming-cloud/tc-app/foobar.js","babelrc":false,"configFile":false,"passPerPreset":false,"envName":"development","root":"/Users/albertgao/codes/self/teaming-cloud/tc-app","plugins":[{"dirname":"/Users/albertgao/codes/self/teaming-cloud/tc-app","file":{"request":"relay","resolved":"/Users/albertgao/codes/self/teaming-cloud/tc-app/node_modules/babel-plugin-relay/index.js"}},{"dirname":"/Users/albertgao/codes/self/teaming-cloud/tc-app","file":{"request":"react-native-reanimated/plugin","resolved":"/Users/albertgao/codes/self/teaming-cloud/tc-app/node_modules/react-native-reanimated/plugin.js"}}],"presets":[{"dirname":"/Users/albertgao/codes/self/teaming-cloud/tc-app","file":{"request":"babel-preset-expo","resolved":"/Users/albertgao/codes/self/teaming-cloud/tc-app/node_modules/babel-preset-expo/index.js"}}]}',
cacheCompression: false,
cacheDirectory:
'/Users/albertgao/codes/self/teaming-cloud/tc-app/.expo/web/cache/development/babel-loader',
caller: {
__dangerous_rule_id: 'expo-babel-loader',
bundler: 'webpack',
platform: 'web',
mode: 'development',
},
},
},
},
{
test: {},
use: [
{
loader:
'/Users/albertgao/codes/self/teaming-cloud/tc-app/node_modules/url-loader/dist/cjs.js',
options: {
esModule: false,
limit: 50000,
name: './fonts/[name].[ext]',
},
},
],
include: [
'/Users/albertgao/codes/self/teaming-cloud/tc-app',
'/Users/albertgao/codes/self/teaming-cloud/tc-app/node_modules/react-native-vector-icons',
'/Users/albertgao/codes/self/teaming-cloud/tc-app/node_modules/@expo/vector-icons',
],
},
{
test: {},
use: [
'/Users/albertgao/codes/self/teaming-cloud/tc-app/node_modules/style-loader/dist/cjs.js',
'/Users/albertgao/codes/self/teaming-cloud/tc-app/node_modules/css-loader/dist/cjs.js',
],
},
{
loader:
'/Users/albertgao/codes/self/teaming-cloud/tc-app/node_modules/file-loader/dist/cjs.js',
exclude: [{}, {}, {}],
options: {
esModule: false,
name: 'static/media/[name].[hash:8].[ext]',
},
},
],
},
],
},
resolveLoader: { plugins: [{}] },
resolve: {
extensions: [
'.web.ts',
'.web.tsx',
'.web.mjs',
'.web.js',
'.web.jsx',
'.ts',
'.tsx',
'.mjs',
'.js',
'.jsx',
'.json',
'.wasm',
],
plugins: [{ topLevelLoader: {} }],
symlinks: false,
alias: {
'react-native$': 'react-native-web',
'react-native/Libraries/Components/View/ViewStylePropTypes$':
'react-native-web/dist/exports/View/ViewStylePropTypes',
'react-native/Libraries/EventEmitter/RCTDeviceEventEmitter$':
'react-native-web/dist/vendor/react-native/NativeEventEmitter/RCTDeviceEventEmitter',
'react-native/Libraries/vendor/emitter/EventEmitter$':
'react-native-web/dist/vendor/react-native/emitter/EventEmitter',
'react-native/Libraries/vendor/emitter/EventSubscriptionVendor$':
'react-native-web/dist/vendor/react-native/emitter/EventSubscriptionVendor',
'react-native/Libraries/EventEmitter/NativeEventEmitter$':
'react-native-web/dist/vendor/react-native/NativeEventEmitter',
},
},
performance: { maxAssetSize: 600000, maxEntrypointSize: 600000 },
optimization: { usedExports: false },
devServer: {
disableHostCheck: true,
compress: true,
clientLogLevel: 'silent',
contentBase:
'/Users/albertgao/codes/self/teaming-cloud/tc-app/node_modules/@expo/webpack-config/web-default',
contentBasePublicPath: '/',
watchContentBase: true,
hot: true,
transportMode: 'ws',
injectClient: false,
publicPath: '/',
noInfo: true,
stats: 'none',
watchOptions: { ignored: {} },
https: false,
host: '0.0.0.0',
overlay: false,
historyApiFallback: { disableDotRule: true, index: '/' },
inline: true,
},
node: {
module: 'empty',
dgram: 'empty',
dns: 'mock',
fs: 'empty',
http2: 'empty',
net: 'empty',
tls: 'empty',
child_process: 'empty',
},
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment