我已将 styled-jsx 添加到我的 Preact (使用此TS 模板设置)项目中,并且可以通过<style>
标签内联样式设置内容而没有问题,例如:
<div>
<h1>Hello{name && `, ${name}`}!</h1>
<form onSubmit={handleNameSubmit}>
<input type="text" value={input} onInput={handleInput} />
<button type="submit" className="test">
Update {input && `as ${input}`}
</button>
</form>
<style jsx>
{`
h1 {
color: red;
}
.test {
color: blue;
}
`}
</style>
</div>
但是,如果我按照他们的说明将该样式提取到一个单独的css
变量中(在同一个文件中或在外部),我会收到以下错误:
if you are getting this error it means that your `css` tagged template literals were not transpiled.
在SO和Github上有一些答案/解决方案,但它们都涉及更改 webpack 配置——而且我没有 webpack 配置。看起来没有一个开箱即用的preact-cli
. 我已babelrc
按照建议将 babel 规则添加到我的:
{
"presets": ["preact-cli/babel"],
"plugins": [["styled-jsx/babel", { "optimizeForSpeed": true }]]
}
但是,我没有macros
从 babel 安装任何额外的或插件,因为那不在 styled-jsx 自述文件的原始说明中。