@netlify/vite-plugin 1.0.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/main.d.ts CHANGED
@@ -3,7 +3,7 @@ import { Features } from '@netlify/dev';
3
3
  interface NetlifyPluginOptions extends Features {
4
4
  /**
5
5
  * Attach a Vite middleware that intercepts requests and handles them in the
6
- * same way as the Netlify production environment.
6
+ * same way as the Netlify production environment (default: true).
7
7
  */
8
8
  middleware?: boolean;
9
9
  }
package/dist/main.js CHANGED
@@ -67,31 +67,46 @@ function netlify(options = {}) {
67
67
  const plugin = {
68
68
  name: "vite-plugin-netlify",
69
69
  async configureServer(viteDevServer) {
70
- const { blobs, functions, middleware = true, redirects, staticFiles } = options;
70
+ const { port } = viteDevServer.config.server;
71
+ const { blobs, edgeFunctions, functions, middleware = true, redirects, staticFiles } = options;
71
72
  const netlifyDev = new NetlifyDev({
72
73
  blobs,
74
+ edgeFunctions,
73
75
  functions,
74
76
  logger,
75
77
  redirects,
76
- staticFiles,
78
+ serverAddress: `http://localhost:${port}`,
79
+ staticFiles: {
80
+ ...staticFiles,
81
+ directories: [viteDevServer.config.root, viteDevServer.config.publicDir]
82
+ },
77
83
  projectRoot: viteDevServer.config.root
78
84
  });
79
85
  await netlifyDev.start();
80
86
  if (!netlifyDev.siteIsLinked) {
81
- logger.log("Your project is not linked to a Netlify site. Run `npx netlify link` to get started.");
87
+ logger.log(
88
+ "Linking this project to a Netlify site lets you deploy your site, use any environment variables defined on your team and site and much more. Run `npx netlify init` to get started."
89
+ );
82
90
  }
83
91
  if (middleware) {
84
- return () => {
85
- viteDevServer.middlewares.use(async (nodeReq, nodeRes, next) => {
86
- const req = toWebRequest(nodeReq, nodeReq.originalUrl);
87
- const res = await netlifyDev.handle(req);
88
- if (res) {
89
- fromWebResponse(res, nodeRes);
90
- } else {
91
- next();
92
+ viteDevServer.middlewares.use(async function netlifyPreMiddleware(nodeReq, nodeRes, next) {
93
+ const req = toWebRequest(nodeReq, nodeReq.originalUrl);
94
+ const headers = {};
95
+ const result = await netlifyDev.handleAndIntrospect(req, {
96
+ headersCollector: (key, value) => {
97
+ headers[key] = value;
92
98
  }
93
99
  });
94
- };
100
+ const isStaticFile = result?.type === "static";
101
+ if (result && !isStaticFile) {
102
+ fromWebResponse(result.response, nodeRes);
103
+ return;
104
+ }
105
+ for (const key in headers) {
106
+ nodeRes.setHeader(key, headers[key]);
107
+ }
108
+ next();
109
+ });
95
110
  }
96
111
  }
97
112
  };
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@netlify/vite-plugin",
3
- "version": "1.0.0",
3
+ "version": "2.0.0",
4
4
  "description": "Vite plugin with a local emulation of the Netlify environment",
5
5
  "type": "module",
6
6
  "engines": {
7
- "node": "^18.14.0 || >=20"
7
+ "node": "^20.6.1 || >=22"
8
8
  },
9
9
  "main": "./dist/main.js",
10
10
  "exports": "./dist/main.js",
@@ -29,16 +29,17 @@
29
29
  },
30
30
  "author": "Netlify Inc.",
31
31
  "devDependencies": {
32
- "@types/node": "^20.5.1",
32
+ "@types/node": "^20.17.57",
33
+ "playwright": "^1.52.0",
33
34
  "tsup": "^8.0.0",
34
35
  "vite": "^6.3.4",
35
36
  "vitest": "^3.0.0"
36
37
  },
37
38
  "dependencies": {
38
- "@netlify/dev": "3.0.0",
39
+ "@netlify/dev": "4.0.0",
39
40
  "chalk": "^5.4.1"
40
41
  },
41
42
  "peerDependencies": {
42
- "vite": "^6.2"
43
+ "vite": "^6"
43
44
  }
44
45
  }