vitejs / vite-plugin-vue

Vite Vue Plugins
MIT License
492 stars 154 forks source link

Vue style import will conflict with the base url config if base url is the prefix of project's full path #25

Open DanSnow opened 2 years ago

DanSnow commented 2 years ago

Describe the bug

Vue plugin will generate a full path to import style parts in SFC. If we set the base URL to /home/ on Linux, it will fail to import.

Reproduction

https://stackblitz.com/edit/vitejs-vite-7nlqrm?file=vite.config.js&terminal=dev

To reproduce this error, you need to meet these conditions, let's assume that your project is under /home/user/project:

  1. your base URL must be set to part of the full path of your project, e.g. /home/ or /home/user/. If you are on Mac, please try /Users/
  2. you must have some style in Vue SFC

System Info

System:
    OS: Linux 5.4 Ubuntu 20.04.4 LTS (Focal Fossa)
    CPU: (4) x64 Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz
    Memory: 10.33 GB / 31.26 GB
    Container: Yes
    Shell: 5.8 - /usr/bin/zsh
  Binaries:
    Node: 16.13.1 - ~/.asdf/installs/nodejs/lts/bin/node
    Yarn: 3.1.1 - /usr/bin/yarn
    npm: 8.1.2 - ~/.asdf/installs/nodejs/lts/bin/npm
  Browsers:
    Chrome: 99.0.4844.51
    Firefox: 97.0.2
  npmPackages:
    @vitejs/plugin-vue: ^2.2.4 => 2.2.4
    vite: ^2.7.13 => 2.8.3

Used Package Manager

yarn

Logs

No response

Validations

poyoho commented 2 years ago

I use vite template create project

pnpm create vite

and add the config

export default defineConfig({
  base: '/home/',
  plugins: [vue()]
})

I think it same with your repo.

But I can't got a error. 😮

DanSnow commented 2 years ago

@poyoho Thanks for sharing. I try again with pnpm and create-vite and still can reproduce this error. I have updated the description with more details, could you please try again?

poyoho commented 2 years ago

wow..amazing