我有一個 Nx monorepo,有三個 Angular 應用程式(所有版本 14)和一個帶有一些 UI 組件的庫。
我想創建一個 NX 執行器來查找舊組件并將其替換為新組件。例如:
<!-- What I have -->
<my-button-component></button>
<!-- What I want -->
<button my-button></button>
我需要一個腳本,因為要替換多個組件以及每個組件的多個實體。所以我的團隊決定創建一個腳本。
現在,我該怎么做呢?我創建了執行程式,但我如何實際分析專案、更新模塊等等......
我在考慮ngast,但我無法讓它作業:/我認為它不支持 Angular 14。
我什至不確定 AST 是否是這項作業的工具。我這里需要一盞燈,拜托。有合適的工具嗎?
uj5u.com熱心網友回復:
實作此目的的方法之一是分叉@angular-eslint/eslint-plugin-template。它有使用@angular-eslint/template-parser來決議 Angular 模板的處理器。
您的插件可能看起來類似于:
export default createESLintRule<[], MessageIds>({
create(context) {
const parserServices = getTemplateParserServices(context);
const source = context.getSourceCode();
return {
[`Element$1[name=my-button-component]`](element: TmplAstElement) {
context.report({
node: node,
message: "Use 'button' instead of 'my-button-component'",
fix: function(fixer) {
const elementText = source.getText(element);
const newText = elementText.replace('my-button-component', 'button');
return fixer.replaceText(element, newText);
}
});
}
}
}
您還可以使用button-has-type ( source ) 作為示例,并閱讀有關在 ESLint 檔案中應用修復的資訊。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/531393.html
上一篇:陣列不重繪,嘗試了很多方法
