
AngularJS 1.x -> Angular 18 migration guidance for GitHub Copilot. Source-of-truth repo for github/awesome-copilot/instructions/angularjs-to-angular-18.instructions.md. 62 LLM regressions across 3 modes. AngularJS EOL since Dec 31 2021; CVE-2024-21490 unpatched.
用于AngularJS到Angular 18的GitHub Copilot指令包的源真存储库,该指令包已交付到github/awesome-copilot的instructions/angularjs-to-angular-18.instructions.md。这是RoninForge计划的一系列面向企业的Copilot产品中的第一个(计划中:.NET Framework到.NET 9迁移、HIPAA PHI编辑、T-SQL反模式、遗留代码的特征测试)。
ng-srcset中的正则表达式拒绝服务,影响1.3.0至1.8.3所有版本)没有上游补丁。商业扩展支持分支(HeroDevs NES、OpenLogic)是唯一打过补丁的构建。TTM = (LOC/LPW) * 1.4),该公式使日历成本清晰可见。一个大型的.instructions.md文件(1,971行),涵盖:
@if/@for/@switch、可延迟视图@defer、基于函数的拦截器/守卫/解析器、provideHttpClient、provideRouter + withComponentInputBinding、inject()、类型化响应式表单、OnPush + 无区域开发预览、DestroyRef + takeUntilDestroyed、toSignal/toObservable、基于信号的viewChild/viewChildren、NgOptimizedImage、Vitest、应用程序构建器)~/development/roninforge-angularjs-migration/
.
.cm README.md 此文件
.cm LICENSE MIT
.cm CHANGELOG.md semver条目
.cm META.yml 提交脚本使用的slug/type/version/target_paths
.cm .editorconfig / .gitattributes 仅LF规范化(awesome-copilot阻止CRLF)
.cm .codespellrc 镜像上游允许列表
.cm scripts/
.cm validate-awesome-copilot-submission.sh 可重用验证器,镜像所有阻塞CI门
.cm submit-to-awesome-copilot.sh 可重用提交器(fork,从staged创建分支,复制,重新生成,PR)
.cm src/ (占位符,用于未来包拆分源时的创作部分)
.cm dist/
.cm angularjs-to-angular-18.instructions.md 实际文件,将被rsync到上游instructions/中
.cm tests/golden/ (占位符,用于冻结输出的差异测试)
.cm .github/workflows/validate.yml 每次推送时运行验证器
research/ 被git忽略;它包含形成指令内容的内部笔记,但不是公开工件的一部分。
scripts/validate-awesome-copilot-submission.sh在github/awesome-copilot的克隆中运行。镜像所有阻塞CI门:
npm ci# 开头)codespell --check-filenames --config .codespellrcgh aw compile --validatenpm run plugin:validatenpm run skill:validate(仅警告)npm start + git diff --exit-code(#1机械性弹回 - 如果README/marketplace过期,validate-readme.yml将失败)scripts/submit-to-awesome-copilot.sh端到端管道:
META.yml(slug、type、version)gh auth statusgithub/awesome-copilot fork到RoninForge(如果尚未fork).upstream-clone/upstream/staged(绝不能是main)upstream/staged创建功能分支dist/中的工件复制到上游树中的正确路径(按类型)npm start以重新生成README + marketplace🤖🤖🤖 AI作者快速通道标记提交staged(绝不能是main)——作业会自动拒绝针对main的PR支持--dry-run(在推送前停止)和--no-pr(推送分支但跳过PR创建)。
固定下限:
ng update模式稳定性。避免:不再维护的AngularJS时代包(angular-ui-bootstrap、ng-storage、ng-flow、angular-translate-loader-static-files);新测试文件使用Karma + Jasmine(通过ng add @analogjs/vitest-angular使用Vitest)。
MIT - 参见LICENSE。
RoninForge 为使用AI编码助手的开发者构建免费工具:
$scope.$apply、ng-controller、$compile、$http、$q、ng-app、ng-bind-html、ng-click、angular.module、| filter、$resource、$cookies、$location、IIFE 'use strict' 包装)*ngIf / *ngFor / *ngSwitch、NgModules、@Input() / @Output() 装饰器、构造函数DI、基于类的拦截器/守卫/解析器、HttpClientModule、RouterModule.forRoot、Promise.all vs forkJoin、订阅泄露、BehaviorSubject状态、默认变更检测、@ViewChild static、非类型化表单、rxjs/operators已弃用导入、浏览器构建器)downgradeInjectable / downgradeComponent、错误的引导顺序、将ng update视为框架迁移、字面$rootScope.$broadcast端口、独立模式下的BrowserAnimationsModule、无区域 + zone.js polyfill泄露)check-pr-target.yml