概要
Svelteコンポーネントの属性を消し去るpreprocessorを作りAIに作ってもらいました。
どうやって作った
AIにほぼ丸投げしました。
ざっくり自分が遭遇しそうなケースは試しましたが、ちゃんとみてないのでバグがあったらごめんなさい!
使い方
pnpm add -D svelte-remove-attributes-preprocessor
https://github.com/shamokit/svelte-remove-attributes-preprocessor
import { removeAttributesPreprocessor } from 'svelte-remove-attributes-preprocessor';
const config = {
preprocess: [その他のpreprocessor, removeAttributesPreprocessor({
envVar: 'STRIP_ATTRIBUTES', // devやbuildなど、script実行時に渡す環境変数名
expected: '1', //script実行時に渡す環境変数の値
attributes: ['data-testid'] //消したい属性
})],
// 略
};
export default config;
{
"scripts": {
"dev": "STRIP_ATTRIBUTES=1 vite dev",
}
}
こんな感じで指定すると、STRIP_ATTRIBUTES=1を指定した時にdata-testid属性が取り去られます。
STRIP_ATTRIBUTES=0やHOGE=1、(何も渡さない) のようにするとdata-testid属性は残ります。
attributesが空配列の場合も残ります。
preprocessorのattributesには複数の属性名を記載できるので、色々消せます。
なんで作った
E2Eテスト環境向けへのビルドの時はdata-testidを残してテスト可能にしたいけど本番では不要なので消したい
みたいなのがあったので設定と環境変数で切り替えられたらいいな ということで作ってもらってみました。
AIさん、ありがとう🙏
ほぼ手を動かさず作れたのでまぁいいかという気はしますが、テストに使用するdata属性にdata-testidじゃないのを使ったりとか、他の共通の処理をやるかもしれないな〜と思ったのでpreprocessorじゃなくてよかったかもなと思いました笑