farm-fe / farm

Extremely fast Vite-compatible web build tool written in Rust
https://farmfe.org
MIT License
4.9k stars 161 forks source link

[Bug Report]: `yarn create farm myapp --template vue2` creates broken project: @vitejs/plugin-vue2 tries to import vite but it isn't included in package.json #1420

Open decademoon opened 3 months ago

decademoon commented 3 months ago

Steps to reproduce

yarn create farm myapp --template vue2
cd myapp
yarn
yarn start

Produces error:

[ Farm ] Using config file at /private/tmp/myapp/farm.config.ts
[ Farm ] Failed to start the server:
 Error: Failed to load farm config file: Cannot find package 'vite' imported from /private/tmp/myapp/node_modules/@vitejs/plugin-vue2/dist/index.mjs
 Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'vite' imported from /private/tmp/myapp/node_modules/@vitejs/plugin-vue2/dist/index.mjs
    at packageResolve (node:internal/modules/esm/resolve:841:9)
    at moduleResolve (node:internal/modules/esm/resolve:914:18)
    at defaultResolve (node:internal/modules/esm/resolve:1119:11)
    at ModuleLoader.defaultResolve (node:internal/modules/esm/loader:541:12)
    at ModuleLoader.resolve (node:internal/modules/esm/loader:510:25)
    at ModuleLoader.getModuleJob (node:internal/modules/esm/loader:240:38)
    at ModuleJob._link (node:internal/modules/esm/module_job:126:49)

Reproduce link

No response

What is actually happening?

yarn start fails on empty vue2 project.

System Info

System:
    OS: macOS 14.5
    CPU: (10) arm64 Apple M1 Max
    Memory: 441.86 MB / 32.00 GB
    Shell: 3.7.1 - /opt/homebrew/bin/fish
  Binaries:
    Node: 22.3.0 - /opt/homebrew/bin/node
    Yarn: 1.22.17 - /opt/homebrew/bin/yarn
    npm: 10.8.1 - /opt/homebrew/bin/npm
    bun: 1.1.15 - /opt/homebrew/bin/bun
  npmPackages:
    @farmfe/core: ^1.1.13 => 1.2.0
decademoon commented 3 months ago

Same with Vue 3 template.

ErKeLost commented 3 months ago

peerdependence will not be automatically installed through yarn, so we may need to manually insert the vite dependency into package.json when we get the yarn package manager passed by the user in create-farm-rs.

So currently you may need to install vite manually first