2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Svelteコンポーネントから指定した属性を消し去るpreprocessorを作っ(てもらっ)た

Last updated at Posted at 2025-12-08

概要

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;
package.json
{
	"scripts": {
		"dev": "STRIP_ATTRIBUTES=1 vite dev",
	}
}

こんな感じで指定すると、STRIP_ATTRIBUTES=1を指定した時にdata-testid属性が取り去られます。
STRIP_ATTRIBUTES=0HOGE=1(何も渡さない) のようにするとdata-testid属性は残ります。
attributesが空配列の場合も残ります。

preprocessorのattributesには複数の属性名を記載できるので、色々消せます。

なんで作った

E2Eテスト環境向けへのビルドの時はdata-testidを残してテスト可能にしたいけど本番では不要なので消したい
みたいなのがあったので設定と環境変数で切り替えられたらいいな ということで作ってもらってみました。

AIさん、ありがとう🙏

ほぼ手を動かさず作れたのでまぁいいかという気はしますが、テストに使用するdata属性にdata-testidじゃないのを使ったりとか、他の共通の処理をやるかもしれないな〜と思ったのでpreprocessorじゃなくてよかったかもなと思いました笑

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?