diff --git a/shell/otask.sh b/shell/otask.sh index e113f91a..b379b71a 100755 --- a/shell/otask.sh +++ b/shell/otask.sh @@ -216,12 +216,12 @@ check_file() { if [[ -f $file_env ]]; then get_env_array if [[ $isJsOrPythonFile == 'true' ]]; then - PREV_NODE_OPTIONS="${NODE_OPTIONS:=}" - PREV_PYTHONPATH="${PYTHONPATH:=}" + export PREV_NODE_OPTIONS="${NODE_OPTIONS:=}" + export PREV_PYTHONPATH="${PYTHONPATH:=}" if [[ $1 == *.js ]] || [[ $1 == *.ts ]] || [[ $1 == *.mjs ]]; then - export NODE_OPTIONS="${NODE_OPTIONS} -r ${file_preload_js}" + export NODE_OPTIONS="-r ${file_preload_js} ${NODE_OPTIONS}" else - export PYTHONPATH="${PYTHONPATH}:${dir_preload}:${dir_config}" + export PYTHONPATH="${dir_preload}:${dir_config}:${PYTHONPATH}" fi else . $file_env diff --git a/shell/preload/sitecustomize.js b/shell/preload/sitecustomize.js index eaa8e038..00624687 100644 --- a/shell/preload/sitecustomize.js +++ b/shell/preload/sitecustomize.js @@ -29,9 +29,12 @@ function run() { file_task_before_js, dir_scripts, task_before, + PREV_NODE_OPTIONS } = process.env; try { + process.env.NODE_OPTIONS = PREV_NODE_OPTIONS; + const splitStr = '__sitecustomize__'; const fileName = process.argv[1].replace(`${dir_scripts}/`, ''); let command = `bash -c "source ${file_task_before} ${fileName}`; @@ -43,7 +46,7 @@ function run() { console.log('执行前置命令\n'); } const res = execSync( - `${command} && echo -e '${splitStr}' && NODE_OPTIONS= node -p 'JSON.stringify(process.env)'"`, + `${command} && echo -e '${splitStr}' && node -p 'JSON.stringify(process.env)'"`, { encoding: 'utf-8', }, diff --git a/shell/preload/sitecustomize.py b/shell/preload/sitecustomize.py index 54eb8153..8c2f469a 100644 --- a/shell/preload/sitecustomize.py +++ b/shell/preload/sitecustomize.py @@ -36,6 +36,9 @@ def expand_range(range_str, max_value): def run(): try: + prev_pythonpath = os.getenv("PREV_PYTHONPATH", "") + os.environ["PYTHONPATH"] = prev_pythonpath + split_str = "__sitecustomize__" file_name = sys.argv[0].replace(f"{os.getenv('dir_scripts')}/", "") command = f'bash -c "source {os.getenv("file_task_before")} {file_name}' @@ -46,7 +49,10 @@ def run(): command += f" && eval '{escape_task_before}'" print("执行前置命令\n") - python_command = "PYTHONPATH= python3 -c 'import os, json; print(json.dumps(dict(os.environ)))'" + prev_pythonpath = os.getenv("PREV_PYTHONPATH", "") + python_command = ( + "python3 -c 'import os, json; print(json.dumps(dict(os.environ)))'" + ) command += f" && echo -e '{split_str}' && {python_command}\"" res = subprocess.check_output(command, shell=True, encoding="utf-8")