defines 参数
该参数是用于在 vite 编译时进行文本替换,其实就是 vite 的 define 配置项,但是与之不同的是,它将会同时作用与 injects , transformers 这俩配置上. 具体请看 作用范围
如何使用
该参数是一个 Record<string, string> 类型,因此你需要像下面这样使用
typescript
ViteWebExtKits({
extensionId: extId,
defines: {
foo: "bar",
},
});ViteWebExtKits({
extensionId: extId,
defines: {
foo: "bar",
},
});我们传递以下这个对象
json
{
"foo": "bar"
}{
"foo": "bar"
}这意味着,只要我们代码中包含 foo 变量或者字符串,都会被替换为字符串 "bar"
例子 1
比如我们在 index.entry.tsx 中编写以下代码
tsx
function App() {
return <div>foo</div>;
}function App() {
return <div>foo</div>;
}在编译后会变成
tsx
function App() {
return <div>bar</div>;
}function App() {
return <div>bar</div>;
}例子 2
比如我们在 options 页面中打印
typescript
console.log(foo);console.log(foo);编译后会变成
typescript
console.log("bar");console.log("bar");注意
如果打印的是 console.log(window.foo) 是不会被转换的
作用范围
- injectScripts
- contentScripts
- background
- options
- popup
- transformers
- externals
Webextkits Docs