英文:
Vite: Is there a possibility to exclude code elements from being built?
问题
我在Vite中正在寻找一种“功能”,可以允许我排除某些代码不被构建。据我记得,在webpack中有一种功能,你可以创建一些注释,如下所示:
###SOMETHING
<code goes here>
###END_SOMETHING
在###SOMETHING和###END_SOMETHING之间的代码在构建过程中不会包含在输出文件中。在Vite中是否有类似的功能,或者是否有其他方法可以执行这样的操作?基本上,这些“标记”之间的代码需要在文件中存在并在vite dev
期间工作,但需要在vite build
期间被省略。
我已经找到了rollup的设置,但它只包括整个文件。
英文:
I'm looking for a "feature" in Vite which will allow me to exclude some code from being built. As far as I remember in webpack there was a feature when you could create some comments like:
###SOMETHING
<code goes here>
###END_SOMETHING
and this code between ###SOMETHING and ###END_SOMETHING wasn't included in output files during build process. Is there relative feature available in Vite or maybe there is another way to perform such a action? Basically code between these "tags" needs to be in file and working during vite dev
, but it needs to be omitted by vite build
.
I've found rollup settings but it only includes whole files.
答案1
得分: 0
可以使用 import.meta.env
变量根据执行模式(生产或开发)有条件地评估 JavaScript。
vite dev
默认情况下将以开发模式运行,vite build
将使用生产模式(尽管你可以通过 --mode
进行覆盖)。
请参见 https://vitejs.dev/guide/env-and-mode.html#modes
在你的情况下,你可以使用 import.meta.env.DEV
来查看是否处于开发模式,并有条件地运行一些代码,例如:
if (import.meta.env.DEV) {
// 代码在 vite dev 模式下运行
}
英文:
It should be possible to conditionally evaluate Javascript according to the execution mode (production or development) by using the import.meta.env
variable.
vite dev
will run in development mode by default and vite build
will use production mode (you can override though through --mode
)
See https://vitejs.dev/guide/env-and-mode.html#modes
In your case you can use import.meta.env.DEV
to see if you are in development mode and run conditionally some code, e.g.:
if (import.meta.env.DEV) {
// code runs in vite dev
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论