Skip to content

Commit b3c6605

Browse files
authored
Merge pull request #56 from rootstrap/feat/web_add_start_build_scripts_for_expo_web
feat(web): add start & build scripts for expo web
2 parents 634ab4e + ed399e1 commit b3c6605

File tree

2 files changed

+20
-12
lines changed

2 files changed

+20
-12
lines changed

env.js

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,17 +23,23 @@ const APP_ENV =
2323

2424
const isEASBuild = process.env.EAS_BUILD === 'true';
2525

26-
const LOCAL_BUILD_SCRIPT_PATTERNS = ['--local', 'eas-cli-local-build-plugin'];
26+
const LOCAL_BUILD_SCRIPT_PATTERNS = [
27+
'--local',
28+
'eas-cli-local-build-plugin',
29+
'expo export',
30+
];
2731
const isLocalBuild = LOCAL_BUILD_SCRIPT_PATTERNS.some((pattern) =>
2832
process.env.npm_lifecycle_script?.includes(pattern)
2933
);
3034

35+
const EXPO_RUN_COMMANDS = ['expo start', 'expo run'];
36+
3137
const ENVIRONMENT_DEPENDANT_SCRIPTS = [
32-
'expo start',
38+
...EXPO_RUN_COMMANDS,
3339
'expo prebuild',
3440
'eas build',
35-
'expo run',
3641
'eas-cli-local-build-plugin',
42+
'expo export',
3743
];
3844

3945
const scriptIsEnvironmentDependant = ENVIRONMENT_DEPENDANT_SCRIPTS.some(
@@ -42,18 +48,12 @@ const scriptIsEnvironmentDependant = ENVIRONMENT_DEPENDANT_SCRIPTS.some(
4248

4349
// Check if the environment file has to be validated for the current running script and build method
4450
const isBuilding = isEASBuild || isLocalBuild;
45-
const isRunning = process.env.npm_lifecycle_script?.includes('expo run');
51+
const isRunning = EXPO_RUN_COMMANDS.some((script) =>
52+
process.env.npm_lifecycle_script?.includes(script)
53+
);
4654
const shouldValidateEnv =
4755
(isBuilding && scriptIsEnvironmentDependant) || isRunning;
4856

49-
console.log({
50-
npm_lifecycle_script: process.env.npm_lifecycle_script,
51-
scriptIsEnvironmentDependant,
52-
isLocalBuild,
53-
isEASBuild,
54-
shouldValidateEnv,
55-
});
56-
5757
const easEnvironmentFileVariable = `ENVIRONMENT_FILE_${APP_ENV.toUpperCase()}`;
5858
const easEnvironmentFilePath = process.env[easEnvironmentFileVariable];
5959
const localEnvironmentFilePath = path.resolve(__dirname, `.env.${APP_ENV}`);

package.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,26 +10,34 @@
1010
"prebuild:development": "cross-env APP_ENV=development pnpm run prebuild",
1111
"android": "cross-env EXPO_NO_DOTENV=1 expo run:android",
1212
"ios": "cross-env EXPO_NO_DOTENV=1 expo run:ios",
13+
"web": "cross-env EXPO_NO_DOTENV=1 expo start --web --reset-cache",
1314
"build:development:android": "cross-env APP_ENV=development EXPO_NO_DOTENV=1 eas build --profile development --platform android ",
1415
"build:development:ios": "cross-env APP_ENV=development EXPO_NO_DOTENV=1 eas build --profile development --platform ios",
16+
"build:development:web": "cross-env APP_ENV=development EXPO_NO_DOTENV=1 expo export -c --platform web",
1517
"start:staging": "cross-env APP_ENV=staging pnpm run start",
1618
"prebuild:staging": "cross-env APP_ENV=staging pnpm run prebuild",
1719
"android:staging": "cross-env APP_ENV=staging pnpm run android",
1820
"ios:staging": "cross-env APP_ENV=staging pnpm run ios",
21+
"web:staging": "cross-env APP_ENV=staging pnpm run web",
1922
"build:staging:android": "cross-env APP_ENV=staging EXPO_NO_DOTENV=1 eas build --profile staging --platform android ",
2023
"build:staging:ios": "cross-env APP_ENV=staging EXPO_NO_DOTENV=1 eas build --profile staging --platform ios",
24+
"build:staging:web": "cross-env APP_ENV=staging EXPO_NO_DOTENV=1 expo export -c --platform web",
2125
"start:qa": "cross-env APP_ENV=qa pnpm run start",
2226
"prebuild:qa": "cross-env APP_ENV=qa pnpm run prebuild",
2327
"android:qa": "cross-env APP_ENV=qa pnpm run android",
2428
"ios:qa": "cross-env APP_ENV=qa pnpm run ios",
29+
"web:qa": "cross-env APP_ENV=qa pnpm run web",
2530
"build:qa:ios": "cross-env APP_ENV=qa EXPO_NO_DOTENV=1 eas build --profile qa --platform ios",
2631
"build:qa:android": "cross-env APP_ENV=qa EXPO_NO_DOTENV=1 eas build --profile qa --platform android ",
32+
"build:qa:web": "cross-env APP_ENV=qa EXPO_NO_DOTENV=1 expo export -c --platform web",
2733
"start:production": "cross-env APP_ENV=production pnpm run start",
2834
"prebuild:production": "cross-env APP_ENV=production pnpm run prebuild",
2935
"android:production": "cross-env APP_ENV=production pnpm run android",
3036
"ios:production": "cross-env APP_ENV=production pnpm run ios",
37+
"web:production": "cross-env APP_ENV=production pnpm run web",
3138
"build:production:android": "cross-env APP_ENV=production EXPO_NO_DOTENV=1 eas build --profile production --platform android ",
3239
"build:production:ios": "cross-env APP_ENV=production EXPO_NO_DOTENV=1 eas build --profile production --platform ios",
40+
"build:production:web": "cross-env APP_ENV=production EXPO_NO_DOTENV=1 expo export -c --platform web",
3341
"xcode": "xed -b ios",
3442
"doctor": "npx expo-doctor@latest",
3543
"preinstall": "npx only-allow pnpm",

0 commit comments

Comments
 (0)