sveltekit 构建端口始终为 3000,但它在我的服务器中不可用。如何更改 svelte.config.js 中的端口?
sveltekit build port is always 3000 but it is not available in my server. How do you change port in svelte.config.js?
3000 端口在我的托管服务器中被占用。现在我正在构建一个 sveltekit 应用程序。
当我使用
npm run dev --port 4000
或 npm 运行 build 然后
npm run preview --port 4000
我可以使用 localhost:4000
启动 sveltekit
我的 npm 运行 build 总是指向我
skapp@0.0.1 preview
> svelte-kit preview
SvelteKit v1.0.0-next.260
network: not exposed
local: http://localhost:3000
在搜索 online 之后,一些可能的在线解决方案是更改适配器节点配置环境中的端口,如下所示:
const config = {
kit: {
adapter: adapter({
out : 'buildit',
env : {
port : 4000,
}
// vite : {
// server : {strictPort : false}
// }
}),
}
};
export default config;
我回去再次构建 sveltekit,然后 运行 命令 npm 运行 再次预览,如下所示:
npm run build
npm run preview
但它给了我相同的 3000 端口。一些在线讨论指向 vite 标志,您将 strictPort 设置为 false,它会寻找下一个可用端口,但这并没有改变端口,构建仍然固定在端口 3000 上。
当我使用 npm 运行 build --port 4000 时,另一个应用程序 运行ning 在端口 3000 上,我收到一个错误。
Error: listen EADDRINUSE: address already in use 127.0.0.1:3000
at Server.setupListenHandle [as _listen2] (net.js:1318:16)
at listenInCluster (net.js:1366:12)
at GetAddrInfoReqWrap.doListen [as callback] (net.js:1503:7)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:69:8)
Emitted 'error' event on Server instance at:
at emitErrorNT (net.js:1345:8)
at processTicksAndRejections (internal/process/task_queues.js:82:21) {
code: 'EADDRINUSE',
errno: -4091,
syscall: 'listen',
address: '127.0.0.1',
port: 3000
}
似乎是服务器实例错误。如何解决?
似乎对 sveltekit 感兴趣的开发人员越来越少,因为当我曾经 post 一个关于 sapper 的问题时,我常常在几个小时内得到答案,但我注意到关于 sveltekit 的问题在几天内得到回答.希望有一些开发人员关注 Whosebug 中的 sveltekit 标签。
所以我的问题是如何更改 npm 运行 build 以便 sveltekit 应用程序开始使用不同的端口。我不是在询问 npm 运行 dev 或 npm 运行 preview。我的询问是关于端口 4000 上 运行 的 sveltekit。如何使用 npm 运行 build 构建具有不同端口的 sveltekit 应用程序?
svelte-kit dev
和 svelte-kit preview
用于开发和调试目的,不应 运行 用于生产构建。
部署到服务器时,您 运行 svelte-kit build
生成最终站点(在您的情况下,应位于 ./buildit 中)
我认为您不能静态指定正在使用的端口,但您可以在使用环境变量启动服务器时提供它。
(我使用的是@sveltejs/adapter-node,因此其他适配器可能会有所不同)
PORT=1234 node buildit/index.js
我希望这是你想要的,老实说我不认为我完全理解这个问题
3000 端口在我的托管服务器中被占用。现在我正在构建一个 sveltekit 应用程序。 当我使用
npm run dev --port 4000
或 npm 运行 build 然后
npm run preview --port 4000
我可以使用 localhost:4000
启动 sveltekit我的 npm 运行 build 总是指向我
skapp@0.0.1 preview
> svelte-kit preview
SvelteKit v1.0.0-next.260
network: not exposed
local: http://localhost:3000
在搜索 online 之后,一些可能的在线解决方案是更改适配器节点配置环境中的端口,如下所示:
const config = {
kit: {
adapter: adapter({
out : 'buildit',
env : {
port : 4000,
}
// vite : {
// server : {strictPort : false}
// }
}),
}
};
export default config;
我回去再次构建 sveltekit,然后 运行 命令 npm 运行 再次预览,如下所示:
npm run build
npm run preview
但它给了我相同的 3000 端口。一些在线讨论指向 vite 标志,您将 strictPort 设置为 false,它会寻找下一个可用端口,但这并没有改变端口,构建仍然固定在端口 3000 上。
当我使用 npm 运行 build --port 4000 时,另一个应用程序 运行ning 在端口 3000 上,我收到一个错误。
Error: listen EADDRINUSE: address already in use 127.0.0.1:3000
at Server.setupListenHandle [as _listen2] (net.js:1318:16)
at listenInCluster (net.js:1366:12)
at GetAddrInfoReqWrap.doListen [as callback] (net.js:1503:7)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:69:8)
Emitted 'error' event on Server instance at:
at emitErrorNT (net.js:1345:8)
at processTicksAndRejections (internal/process/task_queues.js:82:21) {
code: 'EADDRINUSE',
errno: -4091,
syscall: 'listen',
address: '127.0.0.1',
port: 3000
}
似乎是服务器实例错误。如何解决?
似乎对 sveltekit 感兴趣的开发人员越来越少,因为当我曾经 post 一个关于 sapper 的问题时,我常常在几个小时内得到答案,但我注意到关于 sveltekit 的问题在几天内得到回答.希望有一些开发人员关注 Whosebug 中的 sveltekit 标签。
所以我的问题是如何更改 npm 运行 build 以便 sveltekit 应用程序开始使用不同的端口。我不是在询问 npm 运行 dev 或 npm 运行 preview。我的询问是关于端口 4000 上 运行 的 sveltekit。如何使用 npm 运行 build 构建具有不同端口的 sveltekit 应用程序?
svelte-kit dev
和 svelte-kit preview
用于开发和调试目的,不应 运行 用于生产构建。
部署到服务器时,您 运行 svelte-kit build
生成最终站点(在您的情况下,应位于 ./buildit 中)
我认为您不能静态指定正在使用的端口,但您可以在使用环境变量启动服务器时提供它。
(我使用的是@sveltejs/adapter-node,因此其他适配器可能会有所不同)
PORT=1234 node buildit/index.js
我希望这是你想要的,老实说我不认为我完全理解这个问题