@name 启动项目
(self, get)
| 117 | |
| 118 | # 2024/7/12 上午9:48 启动项目 |
| 119 | def start_project(self, get): |
| 120 | ''' |
| 121 | @name 启动项目 |
| 122 | ''' |
| 123 | pid_file = "{}/{}.pid".format(self.node_pid_path, get.project_name) |
| 124 | if os.path.exists(pid_file): |
| 125 | self.stop_project(get) |
| 126 | |
| 127 | project_find = self.get_project_find(get.project_name) |
| 128 | if not project_find: return public.returnResult(False, '项目不存在', code=5) |
| 129 | |
| 130 | project_find = self.get_project_find(get.project_name) |
| 131 | if project_find['edate'] != "0000-00-00" and project_find['edate'] < datetime.datetime.today().strftime("%Y-%m-%d"): |
| 132 | return public.returnResult(False, '当前项目已过期,请重新设置项目到期时间', code=5) |
| 133 | |
| 134 | self._update_project(get.project_name, project_find) |
| 135 | if not os.path.exists(project_find['path']): |
| 136 | error_msg = '启动失败,Nodejs项目{},运行目录{}不存在!'.format(get.project_name, project_find['path']) |
| 137 | public.WriteLog(self.log_name, error_msg) |
| 138 | return public.returnResult(False, error_msg, code=5) |
| 139 | |
| 140 | get.package_info = get.get("package_info", {}) |
| 141 | if not get.package_info: |
| 142 | package_file = "{}/package.json".format(project_find['path']) |
| 143 | if os.path.exists(package_file): |
| 144 | try: |
| 145 | get.package_info = json.loads(public.readFile(package_file)) |
| 146 | except: |
| 147 | pass |
| 148 | |
| 149 | if get.package_info: |
| 150 | dependency_fields = [ |
| 151 | "dependencies", |
| 152 | "devDependencies", |
| 153 | "peerDependencies", |
| 154 | "optionalDependencies", |
| 155 | "bundledDependencies", |
| 156 | "bundleDependencies", |
| 157 | "resolutions", # Yarn 专用 |
| 158 | "overrides" # npm 7+ 专用 |
| 159 | ] |
| 160 | node_modules_path = "{}/node_modules".format(project_find['path']) |
| 161 | if "dependencies" in get.package_info and not os.path.exists(node_modules_path): |
| 162 | if hasattr(get, "_ws"): |
| 163 | get._ws.send(json.dumps(public.returnResult( |
| 164 | True, |
| 165 | "项目依赖安装异常,请先到模块管理中重新安装依赖后再试!", |
| 166 | code=-1 |
| 167 | ))) |
| 168 | else: |
| 169 | return public.returnResult(False, "项目依赖安装异常,请先到模块管理中重新安装依赖后再试!", code=5) |
| 170 | |
| 171 | if not get.package_info: get.package_info['scripts'] = {} |
| 172 | if 'scripts' not in get.package_info: get.package_info['scripts'] = {} |
| 173 | try: |
| 174 | scripts_keys = get.package_info['scripts'].keys() |
| 175 | except: |
| 176 | scripts_keys = [] |
no test coverage detected