Skip to content

feat(vike-server): Add smart dependency handling for standalone builds #81

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 93 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
93 commits
Select commit Hold shift + click to select a range
47f87a5
refactor: rename `vike-node` into `vike-server` (#63)
magne4000 Feb 26, 2025
1fe4a59
chore: upgrade dependencies (#65)
magne4000 Feb 26, 2025
0fcaf1a
refactor (#66)
magne4000 Mar 5, 2025
a18801f
feat(hono): serve
magne4000 Mar 6, 2025
91d46c4
refactor
magne4000 Mar 6, 2025
908e195
feat(hattip): serve
magne4000 Mar 6, 2025
bbf6389
feat(h3): serve
magne4000 Mar 6, 2025
8540e4f
feat(fastify): serve
magne4000 Mar 6, 2025
255df9c
chore
magne4000 Mar 6, 2025
439b287
feat(express): serve
magne4000 Mar 6, 2025
1abbd85
feat(elysia): serve
magne4000 Mar 6, 2025
9d33957
refactor
magne4000 Mar 6, 2025
f67024d
comment
magne4000 Mar 6, 2025
b51b7d7
fix
magne4000 Mar 6, 2025
5004e25
chore
magne4000 Mar 6, 2025
a2bcc26
chore: use serve
magne4000 Mar 6, 2025
2b6beea
cleanup
magne4000 Mar 6, 2025
0d2a4c2
feat: check for presence of vike extensions
magne4000 Mar 6, 2025
617dfc1
chore: allow for virtual entries
magne4000 Mar 6, 2025
13d4103
fix: prefer emitFile to injectRollupInputs
magne4000 Mar 6, 2025
01e29fe
fix: prefer process.env.* instead of constants for better compat
magne4000 Mar 6, 2025
d71816a
chore
magne4000 Mar 6, 2025
6663ce6
chore: do not treat virtual packages as special entries
magne4000 Mar 7, 2025
4caa548
chore: tree shake prod middleware
magne4000 Mar 7, 2025
d8bf316
fix: forward runtime
magne4000 Mar 7, 2025
7530a88
fix: forward runtime
magne4000 Mar 7, 2025
af210f6
chore: simplify esbuild tree-shaking
magne4000 Mar 7, 2025
f3aad17
chore: avoid hono server side effect
magne4000 Mar 7, 2025
14588e2
fix: findRollupBundleEntries
magne4000 Mar 7, 2025
69538b2
comment
magne4000 Mar 7, 2025
23c4bac
comment
magne4000 Mar 7, 2025
849ca2e
refactor: replace VIKE_RUNTIME usage by export conditions (step 1)
magne4000 Mar 7, 2025
225909c
refactor: replace VIKE_RUNTIME usage by export conditions (step 2)
magne4000 Mar 7, 2025
78d820a
fix: set externalConditions for development support
magne4000 Mar 7, 2025
2a30ab2
feat: remove nft tracing
magne4000 Mar 10, 2025
519b179
chore
magne4000 Mar 10, 2025
b8c990b
chore
magne4000 Mar 10, 2025
8b9e6a4
chore
magne4000 Mar 10, 2025
367bb74
feat: move standalone build in its own subfolder
magne4000 Mar 10, 2025
ca49d62
chore
magne4000 Mar 10, 2025
ffd728c
chore
magne4000 Mar 10, 2025
77943b3
chore
magne4000 Mar 10, 2025
e24c184
chore
magne4000 Mar 10, 2025
7dc87ea
feat: standalone files with prefix
magne4000 Mar 10, 2025
165a4ab
chore
magne4000 Mar 10, 2025
f262aef
test: standalone: false
magne4000 Mar 10, 2025
d28c3d3
feat: mark standalone as experimental
magne4000 Mar 10, 2025
01da5ab
format
magne4000 Mar 10, 2025
37b88e5
feat: hattip
magne4000 Mar 10, 2025
fe2502b
chore: return handler from hattip serve
magne4000 Mar 11, 2025
3baf441
refactor
magne4000 Mar 12, 2025
bd3b862
Merge pull request #67 from vikejs/serve
magne4000 Mar 12, 2025
5ecb0f2
feat: server HMR without restarting process (#69)
magne4000 Mar 13, 2025
8b7804c
feat: make this a vike extension (#70)
magne4000 Mar 14, 2025
fb0a0cf
feat: support cumulative server config
magne4000 Mar 14, 2025
611351b
feat: export api
magne4000 Mar 14, 2025
a7a4791
Revert "feat: export api"
magne4000 Mar 14, 2025
4ecaef0
Revert "feat: support cumulative server config"
magne4000 Mar 14, 2025
d36568a
feat: cumulative server config
magne4000 Mar 17, 2025
582825c
feat: remove runtime config
magne4000 Mar 17, 2025
c0f4fac
chore: remove deprecated examples
magne4000 Mar 17, 2025
0581f38
chore(example): split +config
magne4000 Mar 17, 2025
e2036c7
test: adding a few more tests and examples (#71)
magne4000 Mar 18, 2025
d603267
feat: add an option to choose HMR mode (#72)
magne4000 Mar 18, 2025
58d3dfe
chore: v1.0.0-beta.0
magne4000 Mar 20, 2025
602be72
chore: v1.0.0-beta.1
magne4000 Mar 20, 2025
02fc4ee
refactor: remove unused
magne4000 Mar 20, 2025
bec99f0
chore: cleanup
magne4000 Mar 20, 2025
25da319
doc: update README + MIGRATION
magne4000 Mar 20, 2025
6e14fc8
doc: add todo for cloudflare and vercel
magne4000 Mar 20, 2025
a2e1bb1
refactor: remove `external` config (#75)
magne4000 Mar 20, 2025
34e3c38
doc: documentation moved to vike.dev
magne4000 Mar 20, 2025
28600e3
doc: reference migration in README
magne4000 Mar 20, 2025
9294d70
chore: v1.0.0-beta.2
magne4000 Mar 20, 2025
dc95667
fix: update vike (closes #41) (#76)
brillout Mar 21, 2025
89f88c9
chore: comment
magne4000 Mar 21, 2025
27a0235
fix: transform using MagicString. Closes #77
magne4000 Mar 21, 2025
88a7824
fix: don't use configResolved (#79)
nitedani Mar 22, 2025
deb3368
feat(vike-server): Add smart dependency handling for standalone builds
nitedani Mar 23, 2025
e41f099
add assert message
nitedani Mar 23, 2025
5f9cd43
fixes
nitedani Mar 23, 2025
6656d71
typo
nitedani Mar 23, 2025
11a3f7f
remove comment
nitedani Mar 23, 2025
6307b45
change test
nitedani Mar 23, 2025
d3ce07c
update test
nitedani Mar 23, 2025
e975540
minor fix
nitedani Mar 23, 2025
dca2400
update plugin
nitedani Mar 24, 2025
9247641
update test
nitedani Mar 24, 2025
9726fa0
fix test
nitedani Mar 24, 2025
3687afb
simplify plugin
nitedani Mar 24, 2025
da7ca45
remove unused packages
nitedani Mar 24, 2025
5a0e76a
add test
nitedani Mar 25, 2025
948a611
test update
nitedani Mar 25, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,6 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: 9.2.0
- uses: actions/setup-node@v4
with:
node-version: 20
Expand Down
2 changes: 0 additions & 2 deletions .github/workflows/formatting.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,5 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: 9.2.0
- run: pnpm install
- run: pnpm run format:check
4 changes: 3 additions & 1 deletion .npmrc
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
shamefully-hoist=true
shamefully-hoist=true
link-workspace-packages=true
prefer-workspace-packages=true
81 changes: 81 additions & 0 deletions MIGRATION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
## Migration from `vike-node`

### Vike extension syntax
Replace `vike-node` Vite plugin by `vike-server` Vike extension:

#### `vite.config.ts`
```diff
-import vikeNode from 'vike-node/plugin'

export default {
// ...
- plugins: [vikeNode('server/index.js')]
}
```

#### `+config.ts`
```diff
+import vikeServer from 'vike-server/config'

export const config = {
// ...
+ extends: [vikeServer],
+ server: 'server/index.js'
}
```

### Server entry
Example with a server entry using `express`:

```diff
// server/index.js
-import vike from 'vike-node/express'
+import { apply } from 'vike-server/express'
+import { serve } from 'vike-server/express/serve'

-startServer()

function startServer() {
const app = express()
- app.use(vike())
+ apply(app)
const port = process.env.PORT || 3000

- app.listen(port, () => console.log(`Server running at http://localhost:${port}`))
+ return serve(app, { port })
}

+export default startServer()
```

### `external` config
`vike-node`'s `external` config as been removed, but can be replaced by the following Vite config:
```js
// vite.config.ts
export default {
// ...
resolve: {
external: [...]
},
}
```

When used with in `standalone` mode, `+config.ts` also needs to be updated:
```ts
// +config.ts

export const config = {
// ...
server: {
standalone: {
external: [...]
}
}
}
```

### Cloudflare support
TODO

### Vercel support
TODO
1 change: 0 additions & 1 deletion README.md

This file was deleted.

6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Source code of Vike Server extension: [Vike Docs > Server](https://vike.dev/server).

See [packages/vike-server](packages/vike-server).

> [!NOTE]
> Migrating from `vike-node`? Take a look at the [migration doc](MIGRATION.md).
2 changes: 1 addition & 1 deletion biome.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"$schema": "./node_modules/@biomejs/biome/configuration_schema.json",
"files": {
"ignore": ["dist/", ".vercel/", "package.json", "test/vike-node/build"]
"ignore": ["dist/", ".vercel/", "package.json", "test/vike-server/build"]
},
"formatter": {
"indentWidth": 2,
Expand Down
9 changes: 0 additions & 9 deletions examples/express-react-vercel/api/index.js

This file was deleted.

19 changes: 0 additions & 19 deletions examples/express-react-vercel/package.json

This file was deleted.

70 changes: 0 additions & 70 deletions examples/express-react-vercel/pages/+Layout.jsx

This file was deleted.

9 changes: 0 additions & 9 deletions examples/express-react-vercel/pages/+config.js

This file was deleted.

27 changes: 0 additions & 27 deletions examples/express-react-vercel/pages/dynamic/+Page.jsx

This file was deleted.

27 changes: 0 additions & 27 deletions examples/express-react-vercel/pages/index/+Page.jsx

This file was deleted.

3 changes: 0 additions & 3 deletions examples/express-react-vercel/pages/index/+config.js

This file was deleted.

27 changes: 0 additions & 27 deletions examples/express-react-vercel/pages/static/+Page.jsx

This file was deleted.

10 changes: 0 additions & 10 deletions examples/express-react-vercel/pages/static/+config.js

This file was deleted.

14 changes: 0 additions & 14 deletions examples/express-react-vercel/readme.md

This file was deleted.

12 changes: 0 additions & 12 deletions examples/express-react-vercel/server/index.js

This file was deleted.

9 changes: 0 additions & 9 deletions examples/express-react-vercel/vercel.json

This file was deleted.

7 changes: 0 additions & 7 deletions examples/express-react-vercel/vite.config.js

This file was deleted.

9 changes: 9 additions & 0 deletions examples/express-react/+config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
export { config }

import vikeServer from 'vike-server/config'

const config = {
// https://vike.dev/extends
extends: [vikeServer],
server: 'server/index.js'
}
3 changes: 3 additions & 0 deletions examples/express-react/.test-dev.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import { testRun } from './.testRun'

testRun('pnpm run dev')
3 changes: 3 additions & 0 deletions examples/express-react/.test-prod.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import { testRun } from './.testRun'

testRun('pnpm run dev')
Loading
Loading