{"id":18938226,"url":"https://github.com/wechat-miniprogram/skylint","last_synced_at":"2025-04-13T07:56:35.576Z","repository":{"id":49951436,"uuid":"518433802","full_name":"wechat-miniprogram/skylint","owner":"wechat-miniprogram","description":"Skyline 小程序迁移工具. Migration assistant for Skyline miniapp.","archived":false,"fork":false,"pushed_at":"2024-05-31T11:42:48.000Z","size":1213,"stargazers_count":80,"open_issues_count":6,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-13T07:56:30.642Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/wechat-miniprogram.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-07-27T11:41:24.000Z","updated_at":"2025-04-01T09:28:45.000Z","dependencies_parsed_at":"2024-05-31T12:28:24.538Z","dependency_job_id":"8dde172e-40b6-4943-ad8a-cf7ffbed6de4","html_url":"https://github.com/wechat-miniprogram/skylint","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wechat-miniprogram%2Fskylint","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wechat-miniprogram%2Fskylint/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wechat-miniprogram%2Fskylint/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wechat-miniprogram%2Fskylint/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wechat-miniprogram","download_url":"https://codeload.github.com/wechat-miniprogram/skylint/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248681489,"owners_count":21144700,"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-08T12:13:45.753Z","updated_at":"2025-04-13T07:56:35.538Z","avatar_url":"https://github.com/wechat-miniprogram.png","language":"TypeScript","readme":"# Skylint：Skyline 小程序迁移工具\n\n为帮助开发者迁移原有的 WebView 小程序到 Skyline，我们提供迁移工具 Skylint。Skylint 基于抽象语法树和一系列预设规则，分析小程序源代码中可能存在的兼容性和性能问题。\n\n## 安装\n\n使用任意 npm 包管理工具全局安装 Skylint ：\n\n```shell\n$ npm i -g skylint@latest\n```\n\n## 使用\n\n**建议使用 Node 16 及以上版本。**\n\n在需要迁移的工程根目录（即包含 `app.json` 的目录）执行：\n\n```shell\n$ skylint\n```\n\n随后跟随交互式指引配置 `app.json` 和要迁移的页面，Skylint 会逐个分析所选页面及其引用的模板和样式文件。\n\n![00_follow_the_guide](./doc/assets/00_follow_the_guide.png)\n\nSkylint 会依照预设的一系列规则分析源代码，提示可能存在的兼容性和性能问题，并给出修改建议。对于部分规则，Skylint 提供可选的自动修复功能。\n\n![01_follow_the_guide](./doc/assets/01_results.png)\n\nSkylint 所检查出的问题分为四个等级，分别是：\n\n* [3] **Error**：明确有问题，需要修复，显示为红色；\n\n* [2] **Warn**：大概率有问题，视具体情况而定，显示为黄色；\n\n* [1] **Info**：可能有问题，也可能不影响适配，或不影响使用，显示为蓝色；\n\n* [0] **Verbose**：不改也能正常运行，但强烈建议修改，显示为青色。\n\n对于日志量较大的情况，Skylint 支持一组命令行参数，允许按日志等级、文件名和规则名过滤输出。例如：\n\n```bash\n# 仅显示 Warn 和 Error，并排除以 weui.wxss 为结尾的文件\n$ skylint --log-level 2 --exclude \"weui\\.wxss$\"\n\n# 忽略 no-pseudo-class 和 no-pseudo-element 两条规则，注意需要完整规则名\n$ skylint --ignore \"no-pseudo-class, no-pseudo-element\"\n\n# 更多用法可以查看帮助\n$ skylint -h\n```\n\n## 预设规则\n\n下面列出了目前 Skylint 的预设规则，更多规则会陆续添加。\n\n| 规则名                | 说明                                        | 日志等级 |\n| --------------------- | ------------------------------------------- | -------- |\n| disable-scroll        | 不支持页面全局滚动                          | Error    |\n| flex-direction        | flex 布局下未显示指定 flex-direction        | Error    |\n| form                  | 暂不支持 form 组件                          | Error    |\n| inline-text           | 多段文本内联只能使用 text 组件包裹          | Error    |\n| movable-view          | 不支持 movable-view 组件                    | Error    |\n| no-native-nav         | 不支持原生导航栏                            | Error    |\n| no-svg-style-tag      | svg 不支持 style 标签                       | Error    |\n| scroll-view-type      | scroll-view 未显示指定 type 类型            | Error    |\n| useExtendedLib        | 暂不支持 useExtendedLib 扩展库              | Error    |\n| navigator             | navigator 组件只能嵌套文本                  | Warn     |\n| scroll-view-not-found | 当前页面未使用 scroll-view 组件             | Warn     |\n| text-overflow-ellipse | text-overflow: ellipse 只在 text 组件下生效 | Warn     |\n| scroll-view-x-y       | scroll-view 暂不支持水平垂直方向同时滚动    | Info     |\n| mark-wx-for           | 未打开样式共享标记                          | Verbose  |\n| scroll-view-optimize  | 未能充分利用 scroll-view 按需渲染的机制     | Verbose  |\n| video                 | 暂只支持基础播放功能                        | Verbose  |\n\n## 反馈\n\n在使用中遇到问题，或对 Skylint 有功能改进的建议，欢迎在本仓库发表 issue。","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwechat-miniprogram%2Fskylint","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwechat-miniprogram%2Fskylint","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwechat-miniprogram%2Fskylint/lists"}