Closed rootchips closed 1 year ago
npx nuxt generate
npm run start
then
@rootchips click open in new tab, it's ok~
Hi, found the root cause issue
I'm using tailwindcss
The toast appear at bottom in the page.
Is there I need to set the option styling to make it appear like normal?
Hi, thanks for reply.
Btw, I'm using nginx and run by
ssr: false
. I just deploy .output content onlySo there's no npm in production server
This is my nginx config
server { listen 80; server_name domain.com; root /srv/apps/web/.output/public; index index.html; location / { try_files $uri $uri/ /index.html; } }
Hi, found the root cause issue
I'm using tailwindcss
The toast appear at bottom in the page.
Is there I need to set the option styling to make it appear like normal?
Hi, thanks for reply. Btw, I'm using nginx and run by
ssr: false
. I just deploy .output content only So there's no npm in production server This is my nginx configserver { listen 80; server_name domain.com; root /srv/apps/web/.output/public; index index.html; location / { try_files $uri $uri/ /index.html; } }
Updated for the current issue
I follow the steps above, start the server from nginx use .output/public, everything is ok @rootchips
export default defineNuxtConfig({
ssr: false,
});
import Vue3Toastify, { toast } from 'vue3-toastify';
import 'vue3-toastify/dist/index.css';
export default defineNuxtPlugin((nuxtApp) => {
nuxtApp.vueApp.use(Vue3Toastify, { autoClose: 3000 });
return {
provide: { toast },
};
});
<template>
<Html>
<Head>
<Title>index</Title>
</Head>
</Html>
<div
class="bg-white font-montserrat h-100vh p-6 dark:bg-slate-900 dark:text-white/80"
>
<div mt-20 text-center flex select-none all:transition-400>
<div ma>
<div
text-5xl
fw100
animate-bounce-alt
animate-count-infinite
animate-1s
>
unocss
</div>
<div op30 text-lg fw200 m1>
The instant on-demand Atomic CSS engine.
</div>
<button @click="notify">notify by click</button>
</div>
</div>
</div>
</template>
<script setup lang="ts">
definePageMeta({
layout: false,
key: 'index',
});
nextTick(() => {
if (process.client) {
useNuxtApp().$toast('notify after nextTick');
}
});
const notify = () => {
useNuxtApp().$toast.info('toastify success');
// or
// toast.info('toastify success');
};
</script>
Did you forget to import the style in plugins/vue3-toastify.ts
? @rootchips
import Vue3Toastify, { toast } from 'vue3-toastify';
import 'vue3-toastify/dist/index.css'; // <----- here
export default defineNuxtPlugin((nuxtApp) => {
nuxtApp.vueApp.use(Vue3Toastify, { autoClose: 3000 });
return {
provide: { toast },
};
});
Did you forget to import the style in
plugins/vue3-toastify.ts
? @rootchipsimport Vue3Toastify, { toast } from 'vue3-toastify'; import 'vue3-toastify/dist/index.css'; // <----- here export default defineNuxtPlugin((nuxtApp) => { nuxtApp.vueApp.use(Vue3Toastify, { autoClose: 3000 }); return { provide: { toast }, }; });
Hi, I already import the css file.
Below is my vue3-toastify.js and nuxt.config.js
import { toast } from 'vue3-toastify';
import 'vue3-toastify/dist/index.css';
export default defineNuxtPlugin((nuxtApp) => {
nuxtApp.vueApp.config.globalProperties.Vue3Toastify = {
install: () => {
updateGlobalOptions({ autoClose: 1000 });
},
};
return {
provide: { toast },
}
})
nuxt.config.js
export default defineNuxtConfig({
ssr: false,
// routeRules: {
// '/admin/users': { ssr: false },
// '/admin/content/**': { ssr: false },
// '/auth/account/**': { ssr: false },
// },
runtimeConfig: {
public: {
apiBase: process.env.API_URL
}
},
pages: true,
experimental: {
payloadExtraction: false
},
postcss: {
postcssOptions: {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
},
},
css: [
'@/assets/css/main.css',
],
extensions: ['.vue'],
modules: [
"@nuxtjs/tailwindcss",
"nuxt-icon",
"nuxt-lodash",
"@pinia/nuxt",
"@pinia-plugin-persistedstate/nuxt",
"nuxt-swiper",
"nuxt-purgecss",
"@vueuse/nuxt",
"nuxt-lodash",
"dayjs-nuxt",
]
})
Follow your latest settings
https://stackblitz.com/edit/nuxt-starter-1gszqs?file=nuxt.config.ts,pages%2Findex.vue
everything is ok @rootchips
yarn generate
rm -rf .nuxt
npx serve .output/public
can not reproduce it
The weird part is,
When I tried to copy vue3-toastify/dist/index.css into a local file or put it in main.css file, the result is still same.
There's no .Toastify__ class in the entry.css after generate.
This is my tailwind.config.js
/** @type {import('tailwindcss').Config} */
module.exports = {
content: [
"./components/**/*.{js,vue,ts}",
"./layouts/**/*.vue",
"./pages/**/*.vue",
"./plugins/**/*.{js,ts}",
"./nuxt.config.{js,ts}",
"./node_modules/flowbite.{js,ts}"
],
// make sure to safelist these classes when using purge
safelist: [
'w-64',
'w-1/2',
'rounded-l-lg',
'rounded-r-lg',
'bg-gray-200',
'grid-cols-4',
'grid-cols-7',
'h-6',
'leading-6',
'h-9',
'leading-9',
'shadow-lg',
'bg-opacity-50',
'dark:bg-opacity-80'
],
darkMode: 'class',
theme: {
colors: {
primary: { "50": "#eff6ff", "100": "#dbeafe", "200": "#bfdbfe", "300": "#93c5fd", "400": "#60a5fa", "500": "#3b82f6", "600": "#2563eb", "700": "#1d4ed8", "800": "#1e40af", "900": "#1e3a8a" },
cidb: '#038885',
},
fontFamily: {
'sans': ['Inter', 'ui-sans-serif', 'system-ui', '-apple-system', 'system-ui', 'Segoe UI', 'Roboto', 'Helvetica Neue', 'Arial', 'Noto Sans', 'sans-serif', 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'],
'body': ['Inter', 'ui-sans-serif', 'system-ui', '-apple-system', 'system-ui', 'Segoe UI', 'Roboto', 'Helvetica Neue', 'Arial', 'Noto Sans', 'sans-serif', 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'],
'mono': ['ui-monospace', 'SFMono-Regular', 'Menlo', 'Monaco', 'Consolas', 'Liberation Mono', 'Courier New', 'monospace']
},
transitionProperty: {
'width': 'width'
},
textDecoration: ['active'],
minWidth: {
'kanban': '28rem'
},
extend: {},
},
variants: {
fill: [],
extend: {
borderColor: ['focus-visible'],
opacity: ['disabled'],
}
},
plugins: [
require('flowbite/plugin'),
require('@tailwindcss/typography'),
],
}
Sorry, I don't know.
I had the same problem, problem solved by importing vue3-toastify/dist/index.css
into nuxt.config like this:
export default defineNuxtConfig({
compatibilityDate: "2024-04-03",
devtools: {enabled: true},
components: true,
ssr: false,
css: ["~/assets/scss/theme.scss", "~/assets/scss/_tailwind.scss", "vue3-toastify/dist/index.css"],
})
Hi, I'm using Nuxt 3.
The package works on local and the toast is appear when I submit the form.
But when I deployed into production using static web
npx nuxi generate
, the toast didn't appear.Is there I missing the config? I'm following this structure provided by you
https://stackblitz.com/edit/nuxt-starter-1gszqs?file=app.vue,plugins%2Fvue3-toastify.ts