From 7db1b17e3571f8d0f6b28ad46524b990b0ab3a1b Mon Sep 17 00:00:00 2001 From: msojocs Date: Tue, 10 May 2022 19:44:57 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96=E6=9E=84=E5=BB=BA?= =?UTF-8?q?=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tools/rebuild-node-modules.sh | 100 +++++++++++++++++----------------- 1 file changed, 49 insertions(+), 51 deletions(-) diff --git a/tools/rebuild-node-modules.sh b/tools/rebuild-node-modules.sh index f0d93ce..82655cb 100755 --- a/tools/rebuild-node-modules.sh +++ b/tools/rebuild-node-modules.sh @@ -3,6 +3,11 @@ # 1 ---- NW版本 set -e + +notice() { + echo -e "\033[36m $1 \033[0m " +} + root_dir=$(cd `dirname $0`/.. && pwd -P) package_dir="$root_dir/package.nw" export PATH="$root_dir/node/bin:$PATH" @@ -26,17 +31,6 @@ hash nw-gyp 2>/dev/null || { exit 1 } -# 代理处理 -# echo "尝试取消所有代理" -# unset http_proxy -# unset HTTP_PROXY -# unset https_proxy -# unset HTTPS_PROXY -# unset socket_proxy -# unset SOCKET_PROXY -# unset all_proxy -# unset ALL_PROXY - echo -e "\033[42;37m ######## 版本信息 $(date '+%Y-%m-%d %H:%M:%S') ########\033[0m" echo "NW VERSION: $NW_VERSION" echo "nw-gyp version: $( nw-gyp --version )" @@ -45,30 +39,28 @@ echo "npm version: $(npm --version )" python --version python3 --version -rm -fr "${package_dir}/node_modules/vscode-windows-ca-certs" # the module is only available in windows -rm -fr "${package_dir}/node_modules/vscode-windows-registry" # the module is only available in windows -rm -fr "${package_dir}/node_modules/vscode-windows-registry-node" # the module is only available in windows -rm -fr "${package_dir}/node_modules/windows-process-tree" # the module is only available in windows +# these modules are only available in windows +cd "${package_dir}/node_modules" && \ +rm -fr "vscode-windows-ca-certs" "vscode-windows-registry" "vscode-windows-registry-node" "windows-process-tree" -rm -fr "${package_dir}/node_modules/vscode-ripgrep/bin" # redownload bin on linux +rm -fr "${package_dir}/node_modules/vscode-ripgrep/bin/"* # redownload bin on linux +# https://github.com/microsoft/ripgrep-prebuilt +cd "${package_dir}/node_modules/vscode-ripgrep" && \ +mkdir -p tmp && cd tmp && \ +wget https://gh2.yanqishui.work/https://github.com/microsoft/ripgrep-prebuilt/releases/download/v12.1.1-1/ripgrep-v12.1.1-1-x86_64-unknown-linux-musl.tar.gz -O ripgrep-v12.1.1-1-x86_64-unknown-linux-musl.tar.gz && \ +tar xvf ripgrep-v12.1.1-1-x86_64-unknown-linux-musl.tar.gz -C ../bin && \ +cd .. && rm -rf tmp -rm -fr "${package_dir}/node_modules/node-pty" "${package_dir}/node_modules/node-pty-node" # the native module is not available in windows - -(cd "${package_dir}/node_modules" && find -name *.pdb | xargs -I{} rm -r {}) # remove pdb debugging file +(cd "${package_dir}/node_modules" && \ +find -name *.pdb | xargs -I{} rm -rf {} && \ +find -name *.lib | xargs -I{} rm -rf {} && \ +find -name *.exe | xargs -I{} rm -rf {} && \ +find -name *.dll | xargs -I{} rm -rf {}) # remove pdb debugging file rm -fr "${package_dir}/node_modules_tmp" # remove previous hacking tmp -mkdir -p "${package_dir}/node_modules_tmp" -cp -fr "${package_dir}/node_modules" "${package_dir}/node_modules_tmp/node_modules" - -rm -fr "${package_dir}/node_modules_tmp/node_modules/node-pty" -rm -fr "${package_dir}/node_modules_tmp/node_modules/node-pty-node" -rm -fr "${package_dir}/node_modules_tmp/node_modules/native-watchdog" -rm -fr "${package_dir}/node_modules_tmp/node_modules/oniguruma-node" -rm -fr "${package_dir}/node_modules_tmp/node_modules/nodegit" -rm -fr "${package_dir}/node_modules_tmp/node_modules/vscode-ripgrep" -rm -fr "${package_dir}/node_modules_tmp/node_modules/spdlog" -rm -fr "${package_dir}/node_modules_tmp/node_modules/spdlog-node" +mkdir -p "${package_dir}/node_modules_tmp/node_modules" +notice "install modules" max_thread=$(cat /proc/cpuinfo| grep "processor"| wc -l) export JOBS=$max_thread (cd "${package_dir}/node_modules_tmp" && npm install \ @@ -85,32 +77,38 @@ export JOBS=$max_thread --nodegit_binary_host_mirror=https://npmmirror.com/mirrors/nodegit/v0.27.0/ ) # reinstall modules # rebuild -cd "$package_dir/node_modules_tmp/node_modules/node-pty" && nw-gyp rebuild --arch=x64 "--target=$NW_VERSION" --dist-url=https://registry.npmmirror.com/-/binary/nwjs -(cp -fr "${package_dir}/node_modules_tmp/node_modules/node-pty" "${package_dir}/node_modules_tmp/node_modules/node-pty-node") -rm -rf "${package_dir}/node_modules/node-pty" "${package_dir}/node_modules/node-pty-node" -cp -fr "${package_dir}/node_modules_tmp/node_modules/node-pty" "${package_dir}/node_modules" -(cp -fr "${package_dir}/node_modules/node-pty" "${package_dir}/node_modules/node-pty-node") +notice "rebuild node-pty" +cd "$package_dir/node_modules_tmp/node_modules" && \ +cp -fr "node-pty" "node-pty-node" && \ +cd "node-pty" && nw-gyp rebuild --arch=x64 "--target=$NW_VERSION" --dist-url=https://registry.npmmirror.com/-/binary/nwjs -cd "$package_dir/node_modules_tmp/node_modules/native-watchdog" && nw-gyp rebuild --arch=x64 "--target=$NW_VERSION" --dist-url=https://registry.npmmirror.com/-/binary/nwjs -rm -rf "${package_dir}/node_modules/native-watchdog" && cp -fr "${package_dir}/node_modules_tmp/node_modules/native-watchdog" "${package_dir}/node_modules" +notice "rebuild native-watchdog" +cd "$package_dir/node_modules_tmp/node_modules/native-watchdog" && \ +nw-gyp rebuild --arch=x64 "--target=$NW_VERSION" --dist-url=https://registry.npmmirror.com/-/binary/nwjs cd "${package_dir}/node_modules_tmp/node_modules/nodegit" && rm -rf .github include src lifecycleScripts vendor utils build/vendor build/Release/.deps cp -fr "${package_dir}/node_modules_tmp/node_modules/nodegit" "${package_dir}/node_modules" -(cp -fr "${package_dir}/node_modules_tmp/node_modules/oniguruma" "${package_dir}/node_modules_tmp/node_modules/oniguruma-node") -(cp -fr "${package_dir}/node_modules_tmp/node_modules/spdlog" "${package_dir}/node_modules_tmp/node_modules/spdlog-node") -cd "$package_dir/node_modules_tmp/node_modules/spdlog" && nw-gyp rebuild --arch=x64 "--target=$NW_VERSION" --dist-url=https://registry.npmmirror.com/-/binary/nwjs - -(cd "${package_dir}/node_modules_tmp/node_modules" && find -name ".deps" | xargs -I{} rm -rf {} && find -name "obj.target" | xargs -I{} rm -rf {} && find -name "*.a" -delete && find -name "*.lib" -delete && find -name "*.mk" -delete) -(cd "${package_dir}/node_modules_tmp/node_modules" && find -name "*.node" | xargs -I{} \cp -rf {} ${package_dir}/node_modules/{}) - -# https://github.com/microsoft/ripgrep-prebuilt +notice "rebuild oniguruma" cd "${package_dir}/node_modules_tmp/node_modules" && \ -mkdir -p vscode-ripgrep/bin && cd vscode-ripgrep && \ -wget https://gh2.yanqishui.work/https://github.com/microsoft/ripgrep-prebuilt/releases/download/v12.1.1-1/ripgrep-v12.1.1-1-x86_64-unknown-linux-musl.tar.gz -O ripgrep-v12.1.1-1-x86_64-unknown-linux-musl.tar.gz && \ -tar xvf ripgrep-v12.1.1-1-x86_64-unknown-linux-musl.tar.gz -C ./bin -mkdir -p ${package_dir}/node_modules/vscode-ripgrep/bin &&\ -\cp -fr "${package_dir}/node_modules_tmp/node_modules/vscode-ripgrep/bin/rg" "${package_dir}/node_modules/vscode-ripgrep/bin/rg" +cp -fr "oniguruma" "oniguruma-node" && \ +cd "oniguruma" && nw-gyp rebuild --arch=x64 "--target=$NW_VERSION" --dist-url=https://registry.npmmirror.com/-/binary/nwjs + +notice "rebuild spdlog" +cd "${package_dir}/node_modules_tmp/node_modules" && \ +cp -fr "spdlog" "spdlog-node" && \ +cd "spdlog" && nw-gyp rebuild --arch=x64 "--target=$NW_VERSION" --dist-url=https://registry.npmmirror.com/-/binary/nwjs + +notice "remove unused files" +(cd "${package_dir}/node_modules_tmp/node_modules" && \ +find -name ".deps" | xargs -I{} rm -rf {} && \ +find -name "obj.target" | xargs -I{} rm -rf {} && \ +find -name "*.a" -delete && \ +find -name "*.lib" -delete && \ +find -name "*.mk" -delete) + +notice "copy node files" +(cd "${package_dir}/node_modules_tmp/node_modules" && \ +find -name "*.node" | xargs -I{} \cp -rf {} ${package_dir}/node_modules/{}) -(cd "${package_dir}/node_modules" && find -name ".deps" | xargs -I{} rm -rf {} && find -name "obj.target" | xargs -I{} rm -rf {} && find -name "*.a" -delete && find -name "*.lib" -delete && find -name "*.mk" -delete && find -name "*Makefile" -delete && find -name "*gyp*" -delete) rm -rf "${package_dir}/node_modules_tmp"