Download bt-source/panel/mod/project/nodejs/packageManage.py from SZFSPC/apple: direct link, hf CLI and curl.
- Browser
- Download file 3.54 kB
-
https://huggingface.co/spaces/SZFSPC/apple/resolve/main/bt-source/panel/mod/project/nodejs/packageManage.py
- Command line
-
hf download hf://spaces/SZFSPC/apple/bt-source/panel/mod/project/nodejs/packageManage.py
-
curl -L -o packageManage.py https://huggingface.co/spaces/SZFSPC/apple/resolve/main/bt-source/panel/mod/project/nodejs/packageManage.py
3.54 kB
| # coding: utf-8 | |
| # ------------------------------------------------------------------- | |
| # 宝塔Linux面板 | |
| # ------------------------------------------------------------------- | |
| # Copyright (c) 2015-2099 宝塔软件(http://bt.cn) All rights reserved. | |
| # ------------------------------------------------------------------- | |
| # Author: wzz <wzz@bt.cn> | |
| # ------------------------------------------------------------------- | |
| # ------------------------------ | |
| # nodejs模型 - 依赖包管理 | |
| # ------------------------------ | |
| import json | |
| import sys | |
| from mod.project.nodejs.base import NodeJs | |
| from mod.project.nodejs.utils import test_registry_url | |
| if "/www/server/panel/class" not in sys.path: | |
| sys.path.insert(0, "/www/server/panel/class") | |
| import public | |
| class PackageManage(NodeJs): | |
| def __init__(self): | |
| super(PackageManage, self).__init__() | |
| # 2024/7/11 上午11:52 安装依赖包 | |
| def install_package(self, get, manager: str = "npm", | |
| package_name: str = None, | |
| path: str = None, | |
| is_global: bool = False, | |
| force: bool = False, | |
| check_update: bool = False, | |
| *args, **kwargs): | |
| ''' | |
| @name 安装依赖包 | |
| @param manager: | |
| @param package_name string 依赖包名称 | |
| @param path string 项目路径 | |
| @param is_global: | |
| @param force: | |
| @param check_update: | |
| ''' | |
| import os | |
| if path is None: | |
| self.ws_err_exit(False, 'path参数不能为空', code=2) | |
| get._ws.send(json.dumps(self.wsResult( | |
| True, | |
| "开始安装依赖包...", | |
| code=1 | |
| ))) | |
| # node_modules_path = '{}/node_modules'.format(path) | |
| lock_file = ("package-lock.json", "yarn.lock", "pnpm-lock.yaml") | |
| for lock in lock_file: | |
| if os.path.exists("{}/{}".format(path, lock)): | |
| public.ExecShell("rm -f {}/{}".format(path, lock)) | |
| self.set_nodejs_version(get.nodejs_version).set_nodejs_bin().set_manager(manager).get_strict_ssl() | |
| self.set_install_logs(get.project_name) | |
| public.ExecShell("echo -n > {}".format(self.install_logs_file)) | |
| public.ExecShell(self.set_strict_ssl) | |
| get._ws.send(json.dumps(self.wsResult( | |
| True, | |
| "开始检查可用镜像源...", | |
| code=1 | |
| ))) | |
| registry_name, registry_url = test_registry_url() | |
| if registry_url is None: | |
| get._ws.send(json.dumps(self.wsResult( | |
| True, | |
| "检测到镜像源不可用,这可能会导致后续安装执行失败!", | |
| code=1 | |
| ))) | |
| else: | |
| get._ws.send(json.dumps(self.wsResult( | |
| True, | |
| "检测到可用镜像源: {}".format(registry_name), | |
| code=1 | |
| ))) | |
| public.ExecShell("{}/{} config set registry {}".format(self.nodejs_bin, self.manager, registry_url)) | |
| command = self.get_install_cmd( | |
| package_name=package_name, | |
| is_global=is_global, | |
| force=force, | |
| check_update=check_update, | |
| *args, **kwargs | |
| ) | |
| self.exec_logs(get, command, path, write_log=True) | |
| get._ws.send(json.dumps(self.wsResult( | |
| True, | |
| "依赖包安装结束...如果项目启动失败,请检查安装日志!", | |
| code=0 | |
| ))) | |