quasarframework / quasar

Quasar Framework - Build high-performance VueJS user interfaces in record time
https://quasar.dev
MIT License
25.89k stars 3.51k forks source link

SassVariables declaration path does not work if src/ is used #17593

Closed Messoz closed 1 day ago

Messoz commented 1 day ago

What happened?

Following this docs Quasar Scaffolding with Vite Plugin. Build fails with this vite.config.js:


import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { quasar, transformAssetUrls } from '@quasar/vite-plugin'
import { fileURLToPath, URL } from 'node:url'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue({
      template: { transformAssetUrls }
    }),

    // @quasar/plugin-vite options list:
    // https://github.com/quasarframework/quasar/blob/dev/vite-plugin/index.d.ts
    quasar({
      sassVariables: './quasar-variables.sass'
    })

  ]
})

Build is correct with this vite.config.js:

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { quasar, transformAssetUrls } from '@quasar/vite-plugin'
import { fileURLToPath, URL } from 'node:url'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue({
      template: { transformAssetUrls }
    }),

    // @quasar/plugin-vite options list:
    // https://github.com/quasarframework/quasar/blob/dev/vite-plugin/index.d.ts
    quasar({
      sassVariables: '@/quasar-variables.sass'
    })

  ],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  },
})

What did you expect to happen?

Build is correct with the first vite.config.js

Reproduction URL

https://codesandbox.io/p/github/Messoz/testSaasQuasarBug/main?import=true

How to reproduce?

  1. Go to provided link for reproduction
  2. try build -> build is ok
  3. specify src instead @ in quasar config in vite.config.js

Flavour

Vite Plugin (@quasar/vite-plugin)

Areas

Plugins (quasar), Style & Identity (quasar), Quasar Extras (@quasar/extras)

Platforms/Browsers

No response

Quasar info output

error during build:
[vite:css] [sass] Error: Can't find stylesheet to import.
  ╷
1 │ @import 'src/quasar-variables.sass'
  │         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  ╵
  ../../../quasar/src/css/index.sass 1:9  root stylesheet
file: /project/workspace/node_modules/quasar/src/css/index.sass
    at handleCompileResponse (/project/workspace/node_modules/sass-embedded/dist/lib/src/compiler/utils.js:158:15)
    at AsyncCompiler.compileRequestAsync (/project/workspace/node_modules/sass-embedded/dist/lib/src/compiler/async.js:70:54)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async Object.run (file:///project/workspace/node_modules/vite/dist/node/chunks/dep-Cyk9bIUq.js:37516:22)
    at async Object.process (file:///project/workspace/node_modules/vite/dist/node/chunks/dep-Cyk9bIUq.js:37566:24)
    at async compileCSSPreprocessors (file:///project/workspace/node_modules/vite/dist/node/chunks/dep-Cyk9bIUq.js:36733:28)
    at async compileCSS (file:///project/workspace/node_modules/vite/dist/node/chunks/dep-Cyk9bIUq.js:36787:32)
    at async Object.transform (file:///project/workspace/node_modules/vite/dist/node/chunks/dep-Cyk9bIUq.js:36170:11)
    at async transform (file:///project/workspace/node_modules/rollup/dist/es/shared/node-entry.js:19581:16)
    at async ModuleLoader.addModuleSource (file:///project/workspace/node_modules/rollup/dist/es/shared/node-entry.js:19797:36)

Relevant log output

No response

Additional context

No response

rstoenescu commented 1 day ago

Duplicate of https://github.com/quasarframework/quasar/issues/17592 (see ticket for solution)