diff --git a/bin/wechat-devtools-test b/bin/wechat-devtools-test index 2578d2f..67d3500 100644 --- a/bin/wechat-devtools-test +++ b/bin/wechat-devtools-test @@ -16,7 +16,7 @@ USERDATADIR="$( echo ~ )/.config/wechat_devtools" # "$@"参数 LANG=zh_CN.UTF-8 -"$root_dir/nwjs/nw" $root_dir/package.nw $EXTENSION2 $INSPECTOR2 --crash --crash-dumps-dir=/mnt/disk1/GitHub/wechat-devtools/tmp --remote-debugging-port=9999 "$@" +"$root_dir/nwjs/nw" $root_dir/package.nw $EXTENSION2 "$@" # https://crashpad.chromium.org/doxygen/classcrashpad_1_1InitialClientData.html#details # "$root_dir/nwjs/nw" --type=crashpad-handler "--user-data-dir=$USERDATADIR" /prefetch:7 --monitor-self --monitor-self-argument=--type=crashpad-handler "--monitor-self-argument=--user-data-dir=$USERDATADIR" --monitor-self-argument=/prefetch:7 --monitor-self-annotation=ptype=crashpad-handler "--database=$USERDATADIR/Crashpad" "--metrics-dir=$USERDATADIR" --annotation=plat=Linux --annotation=prod=微信开发者工具 --annotation=ver=1.05.2201240 --initial-client-data=0x220,0x224,0x228,0x1fc,0x22c,0x7ffae66ebeb8,0x7ffae66ebec8,0x7ffae66ebed8 & diff --git a/docker/entrypoint b/docker/entrypoint index 08d874d..f99f547 100644 --- a/docker/entrypoint +++ b/docker/entrypoint @@ -22,7 +22,6 @@ fail() { echo "start" python --version echo "docker node version: $( node --version )" -# export http_proxy="http://192.168.249.236:7890" ACTION_MODE=$( export ACTION_MODE ) if [ $ACTION_MODE!='true' ]; then @@ -37,7 +36,7 @@ if [ $ACTION_MODE!='true' ]; then npm set phantomjs_cdnurl https://npm.taobao.org/mirrors/phantomjs # phantomjs 二进制包镜像 npm set selenium_cdnurl https://npm.taobao.org/mirrors/selenium # selenium 二进制包镜像 npm set node_inspector_cdnurl https://npm.taobao.org/mirrors/node-inspector # node-inspector 二进制包镜像 - npm cache clean --force # 清空缓存 + # npm cache clean --force # 清空缓存 echo "\ deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free\ # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free @@ -55,7 +54,8 @@ apt-get update; # 更新 apt-get install -y libx11-dev libxkbfile-dev p7zip-full echo "=====安装node-gyp nw-gyp====" -npm install -g npm node-gyp nw-gyp +npm uninstall node-gyp -g +npm install node-gyp nw-gyp npm -g --registry=https://registry.npm.taobao.org node-gyp install node-gyp list @@ -70,7 +70,7 @@ node-gyp list # end test cd /workspace -# rm -rf package.nw node nwjs -# +# rm -rf package.nw +# node nwjs # exec ./tools/rebuild-node-modules 0.53.1 exec ./tools/setup-wechat-devtools-bash diff --git a/test/fix-nodegit b/test/fix-nodegit new file mode 100644 index 0000000..ed10f9d --- /dev/null +++ b/test/fix-nodegit @@ -0,0 +1,11 @@ +#!/bin/bash + +root_dir=$(cd `dirname $0`/.. && pwd -P) +export PATH="$root_dir/node/bin:$PATH" + +cd "$root_dir/tmp" +mkdir node_test +cd node_test +# npm install nodegit --save --prefix="$root_dir/tmp/node_test" +rm -rf "$root_dir/package.nw/node_modules/nodegit" +cp -r "$root_dir/tmp/node_test/node_modules/nodegit" "$root_dir/package.nw/node_modules" diff --git a/test/test-bash b/test/test-bash index 7564012..fc55110 100644 --- a/test/test-bash +++ b/test/test-bash @@ -1,5 +1,8 @@ #!/bin/bash +root_dir=$(cd `dirname $0`/.. && pwd -P) +export PATH="$root_dir/node/bin:$PATH" + PY_VERSION=`python -V 2>&1|awk '{print $2}'|awk -F '.' '{print $1}'` echo $PY_VERSION if [ "$PY_VERSION" == "Python 3.10.1" ]; then diff --git a/tools/rebuild-node-modules b/tools/rebuild-node-modules index a5c2de5..aac2fa0 100755 --- a/tools/rebuild-node-modules +++ b/tools/rebuild-node-modules @@ -16,8 +16,12 @@ if [ -z $NW_VERSION ]; then echo "NW 版本未指定!" exit 1 fi +echo -e "\033[42;37m ######## 版本信息 $(date '+%Y-%m-%d %H:%M:%S') ########\033[0m" echo "目录: $DIR" echo "NW VERSION: $NW_VERSION" +echo "nw-gyp version: $( nw-gyp --version )" +echo "node version: $(node --version )" +echo "npm version: $(npm --version )" export PATH="$DIR/../node/bin:$PATH" PY_VERSION=`python -V 2>&1|awk '{print $2}'|awk -F '.' '{print $1}'` @@ -50,10 +54,12 @@ 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" -(npm install \ +(cd "${package_dir}/node_modules_tmp" && npm install \ extract-file-icon \ native-keymap \ node-pty \ @@ -64,12 +70,10 @@ rm -fr "${package_dir}/node_modules_tmp/node_modules/spdlog-node" vscode-oniguruma \ vscode-ripgrep \ nodegit \ - --prefix="${package_dir}/node_modules_tmp" \ --registry=https://registry.npm.taobao.org \ --nodegit_binary_host_mirror=https://npm.taobao.org/mirrors/nodegit/v0.27.0/) # reinstall modules # rebuild -echo "nw-gyp version: $( nw-gyp --version )" cd "$package_dir/node_modules_tmp/node_modules/node-pty" && nw-gyp rebuild --arch=x64 "--target=$NW_VERSION" (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" @@ -79,11 +83,13 @@ cp -fr "${package_dir}/node_modules_tmp/node_modules/node-pty" "${package_dir}/n cd "$package_dir/node_modules_tmp/node_modules/native-watchdog" && nw-gyp rebuild --arch=x64 "--target=$NW_VERSION" rm -rf "${package_dir}/node_modules/native-watchdog" && cp -fr "${package_dir}/node_modules_tmp/node_modules/native-watchdog" "${package_dir}/node_modules" +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" && find -name "obj.target" | xargs -I{} rm -rf {}) -(cd "${package_dir}/node_modules_tmp/node_modules" && find -name "*.node" | xargs -I{} /bin/cp -rf {} ${package_dir}/node_modules/{}) +(cd "${package_dir}/node_modules_tmp/node_modules" && find -name "*.node" | xargs -I{} cp -rf {} ${package_dir}/node_modules/{}) 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" diff --git a/tools/rebuild-node-modules2 b/tools/rebuild-node-modules2 new file mode 100644 index 0000000..e5dbf0d --- /dev/null +++ b/tools/rebuild-node-modules2 @@ -0,0 +1,111 @@ +#!/bin/bash +# 参数: +# 1 ---- NW版本 +# +set -e + +SOURCE="${BASH_SOURCE[0]}" +while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink + DIR="$( cd -P "$( dirname "$SOURCE" )" >/dev/null 2>&1 && pwd )" + SOURCE="$(readlink "$SOURCE")" + [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located +done +DIR="$( cd -P "$( dirname "$SOURCE" )" >/dev/null 2>&1 && pwd )" +NW_VERSION=$1 +package_dir="$DIR/../package.nw" + +if [ -z $NW_VERSION ]; then + echo "NW 版本未指定!" + exit 1 +fi +echo "目录: $DIR" +echo "NW VERSION: $NW_VERSION" + +export PATH="$DIR/../node/bin:$PATH" +PY_VERSION=`python -V 2>&1|awk '{print $2}'|awk -F '.' '{print $1}'` +if [ $PY_VERSION != 2 ]; then + hash python2 2>/dev/null || { echo >&2 "I require python2 but it's not installed. Aborting."; exit 1; } + ln -s "$( which python2 )" "$DIR/../node/bin/python" +fi + +hash nw-gyp 2>/dev/null || { + echo "=======请安装nw-gyp=======" + exit 1 +} + +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/spdlog" +rm -fr "${package_dir}/node_modules_tmp/node_modules/spdlog-node" +rm -fr "${package_dir}/node_modules_tmp/node_modules/nodegit" +rm -fr "${package_dir}/node_modules_tmp/node_modules/extract-file-icon" +npm install node-gyp nw-gyp -g +npm config delete registry +(npm install \ + extract-file-icon \ + native-keymap \ + native-watchdog \ + node-pty \ + oniguruma \ + spdlog@0.11.1 \ + trash \ + vscode-oniguruma \ + vscode-ripgrep \ + --prefix="${package_dir}/node_modules_tmp" ) # reinstall modules + +# rebuild +echo "nw-gyp version: $( nw-gyp --version )" + +for mod in "${package_dir}/node_modules_tmp/node_modules"/*; do + mod_name=$(basename "$mod") + echo -e "\e[1;34mrebuild $mod_name\e[0m" >&2 + cd "$mod" + case "$mod_name" in + # extract-file-icon|spdlog-node|oniguruma-node|native-keymap|node-pty-node) + # npm install + # ;; + spdlog|oniguruma|node-pty|native-watchdog|nodegit) + nw-gyp rebuild --arch=x64 --target="${NW_VERSION}" + ;; + # nodegit) + # mkdir lib + # npm install + # npm run recompile + # ;; + vscode-ripgrep) + rm -rf bin + npm install + 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" + ;; + vscode-windows-*|windows-*) + cd ../ + rm -rf "${mod}" + ;; + trash|vscode-oniguruma) + ;; + *) + echo -e "\e[1;31mcannot rebuild $mod\e[0m" >&2 + rm -rf "$mod" + ;; + esac + find -name "obj.target" | xargs -I{} rm -rf {} + find -name "*.node" | xargs -I{} cp -rf {} "${package_dir}/node_modules/$mod_name/{}" +done + +# (cd "${package_dir}/node_modules_tmp/node_modules" && find -name "obj.target" | xargs -I{} rm -rf {}) +# (cd "${package_dir}/node_modules_tmp/node_modules" && find -name "*.node" | xargs -I{} cp -rf {} ${package_dir}/node_modules/{}) + +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" + +rm -rf "${package_dir}/node_modules_tmp" + +# 移除旧配置 +# rm -fr ~/.config/wechat_devtools