feat: 修改代码结构
This commit is contained in:
Executable
+69
@@ -0,0 +1,69 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Set up directories
|
||||
OUT_DIR="out-dev"
|
||||
|
||||
# Clean up any existing build artifacts
|
||||
rm -rf $OUT_DIR
|
||||
mkdir -p $OUT_DIR
|
||||
|
||||
# Declare an array of projects to build
|
||||
PROJECTS=(
|
||||
"ppanel-admin-web:apps/admin:3004"
|
||||
"ppanel-user-web:apps/user:3003"
|
||||
)
|
||||
|
||||
# Step 1: Install dependencies
|
||||
#bun install || {
|
||||
# echo "Dependency installation failed"
|
||||
# exit 1
|
||||
#}
|
||||
|
||||
# Step 2: Build each project using Turbo
|
||||
for ITEM in "${PROJECTS[@]}"; do
|
||||
IFS=":" read -r PROJECT PROJECT_PATH DEFAULT_PORT <<< "$ITEM"
|
||||
echo "Building project: $PROJECT (Path: $PROJECT_PATH)"
|
||||
bun run build --filter=$PROJECT || {
|
||||
echo "Build failed for $PROJECT"
|
||||
exit 1
|
||||
}
|
||||
# Copy build output and static resources to the build directory
|
||||
PROJECT_BUILD_DIR=$OUT_DIR/${PROJECT}-dev
|
||||
cp -r $PROJECT_PATH/.next/standalone/. $PROJECT_BUILD_DIR/
|
||||
cp -r $PROJECT_PATH/.next/static $PROJECT_BUILD_DIR/$PROJECT_PATH/.next/
|
||||
cp -r $PROJECT_PATH/public $PROJECT_BUILD_DIR/$PROJECT_PATH/
|
||||
cp -r $PROJECT_PATH/.env.template $PROJECT_BUILD_DIR/$PROJECT_PATH/.env.template
|
||||
cp -r $PROJECT_PATH/.env $PROJECT_BUILD_DIR/$PROJECT_PATH/.env
|
||||
|
||||
# Generate ecosystem.config.js for the project
|
||||
ECOSYSTEM_CONFIG="$PROJECT_BUILD_DIR/ecosystem.config.js"
|
||||
cat > $ECOSYSTEM_CONFIG << EOL
|
||||
module.exports = {
|
||||
apps: [
|
||||
{
|
||||
name: "${PROJECT}-dev",
|
||||
script: "$PROJECT_PATH/server.js",
|
||||
interpreter: "bun",
|
||||
watch: true,
|
||||
instances: "max",
|
||||
exec_mode: "cluster",
|
||||
env: {
|
||||
PORT: $DEFAULT_PORT
|
||||
}
|
||||
}
|
||||
]
|
||||
};
|
||||
EOL
|
||||
echo "PM2 configuration created: $ECOSYSTEM_CONFIG"
|
||||
|
||||
# Create a tar.gz archive for each project
|
||||
ARCHIVE_NAME="$OUT_DIR/${PROJECT}-dev.tar.gz"
|
||||
tar -czvf $ARCHIVE_NAME -C $OUT_DIR ${PROJECT}-dev || {
|
||||
echo "Archiving failed for $PROJECT"
|
||||
exit 1
|
||||
}
|
||||
echo "Archive created: $ARCHIVE_NAME"
|
||||
done
|
||||
|
||||
# Final output
|
||||
echo "All projects have been built and archived successfully."
|
||||
Reference in New Issue
Block a user