VueJS/Tailwind CSS/VITE:使用環境變數作為 Tailwind 主題的顏色
P粉174151913
2023-08-26 14:31:22
<p>我有一個包含Vite、Tailwind CSS 和postcss 的VueJS 設定,並且想使用<code>.env.name</code> 檔案中的變數定義不同的顏色,以便我可以根據程式碼部署位置應用不同的顏色主題。 < /p>
</p><p>我嘗試使用包含 <code>.env</code> 檔案</p>
<pre class="brush:php;toolbar:false;">VITE_COLOR="FF0000"</pre>
<p>並在 <code>tailwind.config.js</code> 中導入</p>
<pre class="lang-js prettyprint-override"><code>...
theme: {
colors: {
primary: import.meta.env.COLOR
}
}
…
</code></pre>
<p>但是,我收到以下錯誤:</p>
<blockquote>
<p>語法錯誤:無法在模組外部使用“import.meta”</p>
</blockquote>
<p>我需要改變什麼才能使其正常工作,或者有更好的方法嗎? </p>
Tailwind 設定是 CommonJS 檔案(不是模組),因此您無法使用
import
等 ES6 功能您可以安裝名為 dotenv
的軟體包需要將其放在 tailwind 設定檔之上,例如
在
# 前綴.env
中建立顏色變數。請注意,由於我們要求它超出了 Vite 的範圍,因此它可能不會帶有VITE_
現在您可以在 tailwind 配置中存取它
這將起作用但是如果您更改
.env
檔案中的顏色,則需要再次重建樣式。如果它適合你(一種部署 - 無論如何一種顏色) - 很好。我個人會建議另一個基於 CSS 變數的解決方案 - CanIUse 連結在CSS檔案中定義變數或在
index.html
中的#標籤內建立
style
標籤並在配置中
就是這樣 - 沒有額外的包,額外的工作,如果您更改 CSS 變量,更改將即時應用 - 即使在生產中,因為我們使用 CSS 功能