Skip to content

Commit

Permalink
update 4.0.7 && add windows script
Browse files Browse the repository at this point in the history
  • Loading branch information
mythmyd committed Mar 29, 2024
1 parent 53f07d4 commit ff44543
Show file tree
Hide file tree
Showing 11 changed files with 12,758 additions and 10 deletions.
20 changes: 14 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,19 +33,27 @@ curl --location 'http://127.0.0.1:13300/build?project=crp-app'

## 自行构建指定版本

以下脚本均在macOS环境下编写,Windows用户请自行参阅源码修改。特别要注意的是`core-build.sh`,Windows版HBuilderX的提取产物略有差异。
1、克隆本仓库

1、从本机的HBuilderX中提取核心并打包:
```shell
git clone --filter=blob:limit=4m https://github.com/hbuilderx-vanilla/docker.git
```

2、执行打包脚本以从本机的HBuilderX中提取核心:

**以HbuilderX 3.9.9为例:第一个参数为HbuilderX版本号,第二个参数为HbuilderX的plugins文件夹路径。**

```shell
# 注意:该脚本只支持macOS版HBuilderX。如需从Windows版本构建,请自行根据core-build.sh修改。
# 执行如下命令打包新版核心(以HbuilderX 3.9.9为例):
# 第一个参数为HbuilderX版本号,第二个参数为HbuilderX的plugins文件夹路径
# macOS
cd build
./core-build.sh 3.9.9 /Applications/HBuilderX.app/Contents/HBuilderX/plugins

# Windows (实验性)
cd build
./core-build.ps1 3.9.9 "D:\HBuilderX\plugins"
```

2、修改Dockerfile-China-Mainland、执行Docker构建脚本并运行测试:
3、修改Dockerfile-China-Mainland、执行Docker构建脚本并运行测试:

```shell
# 修改Dockerfile-China-Mainland第17行,将ARG CORE_VERSION=3.9.9替换为你构建的核心版本
Expand Down
Binary file added build/7z/7za.dll
Binary file not shown.
Binary file added build/7z/7za.exe
Binary file not shown.
Binary file added build/7z/7zxa.dll
Binary file not shown.
50 changes: 50 additions & 0 deletions build/core-build.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
$core_version = $args[0]
$plugins_root = $args[1]

$current_dir = Split-Path -Parent $MyInvocation.MyCommand.Definition
$parent_dir = Split-Path -Parent $current_dir
$core_dir = Join-Path $parent_dir "core"
$plugins_dir = Join-Path $core_dir "plugins"

if (-not (Test-Path $plugins_dir)) {
New-Item -ItemType Directory -Path $plugins_dir | Out-Null
}

Copy-Item -Path "$current_dir\resources\node" -Destination "$plugins_dir" -Recurse
Expand-Archive -Path "$current_dir\resources\npm.zip" -DestinationPath "$plugins_dir" -Force
# 7zip unzip npm.zip will cause npx error
# $zipFilePath = Join-Path -Path $current_dir -ChildPath "resources\npm.zip"
# $7zExePath = Join-Path -Path $current_dir -ChildPath "7z\7za.exe"
# & "$7zExePath" x "$zipFilePath" -o"$plugins_dir" -y
Copy-Item -Path "$current_dir\resources\package.json" -Destination "$plugins_dir" -Force
Copy-Item -Path "$current_dir\resources\package-lock.json" -Destination "$plugins_dir" -Force
Copy-Item -Path "$plugins_root\about" -Destination "$plugins_dir" -Recurse -Force
Copy-Item -Path "$plugins_root\compile-dart-sass" -Destination "$plugins_dir" -Recurse -Force

$uniapp_cli_vite_dir = "$plugins_dir\uniapp-cli-vite"
New-Item -ItemType Directory -Path $uniapp_cli_vite_dir | Out-Null
Copy-Item -Path "$plugins_root\uniapp-cli-vite\index.js" -Destination $uniapp_cli_vite_dir -Force
Copy-Item -Path "$plugins_root\uniapp-cli-vite\vite.config.js" -Destination $uniapp_cli_vite_dir -Force
Copy-Item -Path "$plugins_root\uniapp-cli-vite\package.json" -Destination $uniapp_cli_vite_dir -Force
Copy-Item -Path "$plugins_root\uniapp-cli-vite\package.nls.json" -Destination $uniapp_cli_vite_dir -Force
Copy-Item -Path "$plugins_root\uniapp-cli-vite\package.nls.zh_CN.json" -Destination $uniapp_cli_vite_dir -Force
Copy-Item -Path "$plugins_root\uniapp-cli-vite\yarn.lock" -Destination $uniapp_cli_vite_dir -Force

$package_json_path = "$uniapp_cli_vite_dir\package.json"
$package_json = Get-Content $package_json_path | ConvertFrom-Json
$package_json.devDependencies.PSObject.Properties.Remove("@esbuild/win32-ia32")
$package_json.devDependencies.PSObject.Properties.Remove("@esbuild/win32-x64")
if ($package_json.devDependencies.PSObject.Properties.Name -contains "@esbuild/linux-x64") {
$package_json.devDependencies."@esbuild/linux-x64" = "0.17.12"
}
else {
$package_json.devDependencies | Add-Member -MemberType NoteProperty -Name "@esbuild/linux-x64" -Value "0.17.12"
}
$package_json | ConvertTo-Json -Depth 100 | Set-Content $package_json_path
Set-Location -Path $parent_dir
$tarFilePath = "core-$core_version.tar"
& $current_dir\7z\7za.exe a -ttar $tarFilePath "core" -xr!"__MACOSX" -xr!".DS_Store"
$tarGzFilePath = "core-$core_version.tar.gz"
& $current_dir\7z\7za.exe a -tgzip $tarGzFilePath $tarFilePath
Remove-Item -Path $tarFilePath
Remove-Item -Path $core_dir -Force -Recurse
10 changes: 6 additions & 4 deletions build/core-build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,12 @@ core_dir="$parent_dir/core"
plugins_dir="$core_dir/plugins"
mkdir -p "$plugins_dir"

cp -r "$current_dir/node" "$plugins_dir/"
unzip "$current_dir/npm.zip" -d "$plugins_dir"
cp -r "$plugins_root/node_modules/package.json" "$plugins_dir/"
cp -r "$plugins_root/node_modules/package-lock.json" "$plugins_dir/"
cp -r "$current_dir/resources/node" "$plugins_dir/"
unzip "$current_dir/resources/npm.zip" -d "$plugins_dir"
cp -r "$current_dir/resources/package.json" "$plugins_dir/"
cp -r "$current_dir/resources/package-lock.json" "$plugins_dir/"
# cp -r "$plugins_root/node_modules/package.json" "$plugins_dir/"
# cp -r "$plugins_root/node_modules/package-lock.json" "$plugins_dir/"
cp -r "$plugins_root/about" "$plugins_dir/"
cp -r "$plugins_root/compile-dart-sass" "$plugins_dir/"
mkdir "$plugins_dir/uniapp-cli-vite"
Expand Down
File renamed without changes.
File renamed without changes.
Loading

0 comments on commit ff44543

Please sign in to comment.