у меня Nuxt 2.13 и sass-loader 8.0.2. я собираюсь добавить две переменные env в мои файлы scss. я успешно добавил одну переменную загрузчиками в разделе сборки на Nuxtjs:
build: {
loaders: {
scss: {
prependData: `$base_url: '${process.env.NODE_ENV == 'development' ? process.env.NUXT_BASE_URL : process.env.SITE_BASE_URL+'/'}';`,
}
}
}
а как добавить еще???
пытался
prependData: `$base_url: '${process.env.NODE_ENV == 'development' ? process.env.NUXT_BASE_URL : process.env.SITE_BASE_URL+'/'}';$nuxt_mode: '${process.env.NODE_ENV}';`
но он не добавит 2-й.
Я предлагаю обновить sass-loader до 9.0.0, а затем заменить prependData на дополнительные данные, которые могут быть функцией.
...
additionalData: _ => {
return `$base_url: '${process.env.NODE_ENV == 'development' ? process.env.NUXT_BASE_URL : process.env.SITE_BASE_URL+'/'}';$nuxt_mode: '${process.env.NODE_ENV}';`;
},
...
с Nuxt 2.15.4 нет необходимости в sass-loader (он идет в комплекте). так :
// nuxt.config.js
export default {
build: {
loaders: {
scss: {
additionalData: `
$va1:${process.env.VAR1};
$va2:${process.env.VAR2};
$var3:${process.env.VAR3};
$var4:${process.env.VAR4};
`
}
},
}
}
в случае nuxt3 используйте следующее
import { defineNuxtConfig } from 'nuxt'
export default defineNuxtConfig({
vite: {
css: {
preprocessorOptions: {
scss: {
additionalData: `@import "@/assets/scss/_variables.scss"; $primary: red;`
}
}
}
}
})
Танкс. полезно знать при переходе на v3