donnikitos / vite-plugin-php

Vite's speed and tooling to preprocess PHP-files!
https://www.npmjs.com/package/vite-plugin-php
MIT License
30 stars 0 forks source link

Respect Vite's `root` config field #10

Open ipekli opened 5 months ago

ipekli commented 5 months ago

I'm having trouble getting vite-plugin-php to work with my Vite setup (version 5.1.4). Despite following the plugin's documentation and configuring my vite.config.js as shown below, it doesn't seem to function as expected. My project structure is straightforward with a single index.php file in the src directory, and I've directed the plugin to use a specific PHP binary.

Here's my vite.config.js:

import path from "path";
import { defineConfig } from "vite";
import usePHP from "vite-plugin-php";

export default defineConfig({
  plugins: [
    usePHP({
      binary: "/opt/homebrew/bin/php",
      entry: ["index.php"],
    }),
  ],
  root: path.resolve(__dirname, "src"),
});

And my project structure:

- src
  -- index.php

Could anyone point out what might be wrong with this configuration or suggest any steps to troubleshoot this issue?

ipekli commented 5 months ago

Creating a starter repository for this would be highly beneficial! It seems like a fantastic development eliminating the need for workarounds and using wildcards. However, I wasn't able to make it function correctly.

donnikitos commented 5 months ago

Hi @ipekli, Vite's root config is being ignored at the moment by the plugin. The root is assumed to be the project folder, where the vite.config.js or vite.config.ts is. In order to load the index.php from your src folder, the config should be as follows:

import path from "path";
import { defineConfig } from "vite";
import usePHP from "vite-plugin-php";

export default defineConfig({
  plugins: [
    usePHP({
      binary: "/opt/homebrew/bin/php",
      entry: ["src/index.php"],
    }),
  ],
  root: path.resolve(__dirname, "src"),
});

Keep in mind, that you will have /src/ prefix in the URL.

Regarding the root configuration: I will implement that properly, hopefully in the near future.

bumbummen99 commented 3 months ago

Why has this issue been closed? It does seem as this is still an issue.

donnikitos commented 3 months ago

I guess due to the created starter repository ;)