{"id":18739017,"url":"https://github.com/gaubee/jhs","last_synced_at":"2025-06-30T03:06:23.463Z","repository":{"id":33646168,"uuid":"37298595","full_name":"Gaubee/jhs","owner":"Gaubee","description":"静态文件服务器，专注渲染工作","archived":false,"fork":false,"pushed_at":"2016-05-10T05:21:13.000Z","size":2366,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"v2","last_synced_at":"2025-06-30T03:06:21.288Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Gaubee.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-06-12T02:52:30.000Z","updated_at":"2021-12-18T09:35:09.000Z","dependencies_parsed_at":"2022-08-17T19:50:39.284Z","dependency_job_id":null,"html_url":"https://github.com/Gaubee/jhs","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/Gaubee/jhs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gaubee%2Fjhs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gaubee%2Fjhs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gaubee%2Fjhs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gaubee%2Fjhs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Gaubee","download_url":"https://codeload.github.com/Gaubee/jhs/tar.gz/refs/heads/v2","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gaubee%2Fjhs/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262702325,"owners_count":23350641,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-07T15:32:26.277Z","updated_at":"2025-06-30T03:06:23.436Z","avatar_url":"https://github.com/Gaubee.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JH\r\n\r\n\u003e 一个提供访问编译功能静态文件服务\r\n\r\n## 需要注意\r\n\r\n路由分两种：**文件**、**目录**。 如果你的文件没有后缀，那么是无法访问到这个文件的，他会被当成是目录来进行访问，访问目录下的`index.html`。\r\n\r\n如果ROOT提供的是HTTP协议，那么要注意URL-pathname中的多个`/、\\\\`会被当成一个`/`来处理：\r\n```\r\n\"http://a.com/////a//c.b.js\" ==\u003e \"http://a.com/a/c/b.js\"\r\n```\r\n\r\n`JHS`代表`JH-Server`，是程序核心\r\n\r\n## 如何加载编译后的文件\r\n\r\n提供了Sass、Less、TypeScriptd等语言的编译，访问的时候需要加上参数：`compile_to`。比如：\r\n```\r\ncurl http://localhost/test.less?compile_to=.css\r\n```\r\n\r\n## 实现自定义路由\r\n\r\n`JHS`的options是可以动态更改的，从而动态更改一次请求的路由：\r\n```js\r\n// 通过ON事件监听，可以返回一个Promise对象，从而控制执行流程\r\njhs.on(\"before_filter\", co.wrap(function*(req, res) {\r\n    if(req.path.entWiht(\".js\")){\r\n        req.jhs_options = {root : __dirname+\"/other_js/\"};\r\n    }\r\n}));\r\njhs.on(\"*.js\",co.wrap(function*(req, res){\r\n    \r\n}));\r\n```\r\n\r\n# TODO\r\n\r\n## 如何安装\r\n\r\n1. 分步按需安装：\r\n```shell\r\n# 安装主模块\r\nnpm install jh -g\r\n\r\n# 搭建服务，这里会将全局的jh下的jhs文件夹拷贝到node_modules下，安装依赖并保持到package.json中\r\ncd project-folder \u0026\u0026 jh init\r\n\r\n# 安装需要的编译模块\r\njh install less\r\njh install sass # 默认指定sass.js\r\njh install libsass # 如果安装了libsass，sass编译的时候会选择libsass\r\njh install ts # typescript-simple\r\njh install babel\r\njh install live # live-reload\r\njh install all # 全部模块\r\n\r\n# 查看当前目录已经安装的模块\r\njh ls\r\n#\u003e ^2.0.0 jh\r\n#\u003e ^3.3.7 clean-css\r\n#\u003e ^2.5.3 less\r\n#\u003e ^3.2.0 node-sass\r\n#\u003e ^3.0.2 typescript-simple\r\n\r\n# 拷贝出一次安装的命令\r\njh copy\r\n#\u003e npm install --save jh^2.0.0 --m:less^2.5.3,sass^3.2.0,ts^3.0.2\r\n# 不带版本号的安装命令\r\njh copy new\r\n#\u003e npm install --save jh --m:less,sass,ts\r\n\r\n# 启动默认服务，端口号：10090\r\njh server\r\n# 自定义端口号\r\njh server -p:80\r\n```\r\n2. 一次性安装，适用于服务端部署：\r\n```shell\r\n# 全部模块\r\nnpm install --save jh --m:all\r\n# 按需模块\r\nnpm install --save jh --m:less,sass,ts\r\n```\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgaubee%2Fjhs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgaubee%2Fjhs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgaubee%2Fjhs/lists"}