开发模式使用npm run dev,发布模式使用npm build
我怎么知道它当前是建立在开发模式上还是不在代码中,例如:
<script>
import {onMount} from 'svelte';
onMount(function(){
if(DEVMODE) { // --> what's the correct one?
console.log('this is x.svelte');
}
})
</script>
Run Code Online (Sandbox Code Playgroud)
小智 41
如果您使用 sveltekit:
import { dev } from '$app/environment';
if (dev) {
//do in dev mode
}
Run Code Online (Sandbox Code Playgroud)
dag*_*lti 10
不确定正确的方法。我分享我在我的项目中所做的。
rollup.config.jsRun Code Online (Sandbox Code Playgroud)import replace from "@rollup/plugin-replace"; const production = !process.env.ROLLUP_WATCH;
plugins:[ ]块内添加这个Run Code Online (Sandbox Code Playgroud)replace({ isProduction: production, }),
rollup.config.js 看起来像这样。
},
plugins: [
replace({
isProduction: production,
}),
svelte({
Run Code Online (Sandbox Code Playgroud)
isProduction内部组件。
if (!isProduction){ console.log('Developement Mode'); }
我通过检查应用程序运行的主机名解决了这个问题。您还可以使用其他形式,例如 port 甚至 msm localStore 浏览器变量。
请注意,在使用“窗口”之前,我检查应用程序是否在客户端运行
const isProduction = (): boolean => {
// Check if is client side
if (typeof window !== 'undefined' && window.document !== undefined) {
// check production hostname
if (window?.location.hostname !== undefined &&
window.location.hostname === 'YOUR_PRODUCTION_HOSTNAME') {
return true
} else {
return false
}
} else {
return false
}
}
Run Code Online (Sandbox Code Playgroud)
当使用 Svelte (不是 svelte-kit)时,这在 svelte 组件中对我有用:
<script>
let isProduction = import.meta.env.MODE === 'production';
if (!isProduction) {
console.log("Developement Mode");
} else {
console.log("Production Mode");
}
</script>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
776 次 |
| 最近记录: |