gpt4 book ai didi

node.js - now-cli 部署不会构建 package.json 依赖项

转载 作者:太空宇宙 更新时间:2023-11-03 22:20:30 25 4
gpt4 key购买 nike

我正在尝试通过部署 Sapper 构建的应用程序@now-node。任务基本上是部署具有依赖项的 Polka 服务器并静态地提供静态/和客户端/文件。我已设法通过 includeFiles 包含 Lambda 所需的文件,但现在我在日志中看到构建器忽略了 package.json 中描述的依赖项。确切的消息是

Starting server on port 3000
Cannot find module 'sirv'
Did you forget to add it to "dependencies" in `package.json`?

但是我在构建日志中看到依赖项没有被收集。 package.jsonpackage-lock.json 都存在于源文件中。

如果您能提供有关如何解决此问题的建议,我将不胜感激。

我得到的 now.json 配置如下所示:

{
"version": 2,
"name": "experimental-sapper",
"builds": [
{
"src": "__sapper__/build/index.js",
"use": "@now/node",
"config": {
"includeFiles": [
"../build/**",
"../../static/**"
]
}
},
{
"src": "static/**",
"use": "@now/static"
},
{
"src": "__sapper__/build/client/**",
"use": "@now/static"
}
],
"routes": [
{ "src": "/(.*(\\.css)|(\\.json)|(\\.png))", "dest": "/static/$1" },
{ "src": "/client/(.*)", "dest": "/__sapper__/build/client/$1" },
{ "src": "/(.*)", "dest": "/__sapper__/build/index.js" }
],
"alias": "..."
}

src/server.js 看起来像这样(在 Rollup 捆绑之前):

import sirv from 'sirv';
import polka from 'polka';
import compression from 'compression';
import * as sapper from '@sapper/server';
const { PORT, NODE_ENV } = process.env;
const dev = NODE_ENV === 'development';
const app = polka() // You can also use Express
.use(compression({ threshold: 0 }));
if (dev) {
app.use(sirv('static', { dev }));
}
app.use(sapper.middleware())
.listen(PORT, err => {
if (err) console.log('error', err);
});
export default app.handler;

然后 package.json 也非常标准:

  "description": "TODO",
"version": "0.0.1",
"scripts": {
"dev": "sapper dev",
"build": "sapper build --legacy",
"export": "sapper export --legacy",
"start": "node __sapper__/build",
"cy:run": "cypress run",
"cy:open": "cypress open",
"test": "run-p --race dev cy:run"
},
"dependencies": {
"compression": "^1.7.1",
"express": "^4.17.1",
"polka": "^0.5.0",
"postcss-define-property": "^0.5.0",
"sirv": "^0.4.0"
},
"devDependencies": {
...
},
"browserslist": "last 2 versions"
}

提前致谢!

最佳答案

对于遇到此问题的任何人,解决方案是使用 https://www.npmjs.com/package/now-sapper 处的 now-sapper 构建器。

网站上有说明,但本质上您需要如上所述导出处理程序,然后让构建器完成其余的工作。目前存在一些错综复杂的问题,这意味着仅靠 Node 构建器将无法工作。

您现在的配置应如下所示:

{
"version": 2,
"builds": [
{
"src": "package.json",
"use": "now-sapper"
}
]
}

自述文件链接了一个演示项目,它是一个基本的 Sapper 模板,具有现在所需的配置。

导出应用程序的注意事项,@now/static 就足够了。

关于node.js - now-cli 部署不会构建 package.json 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56460903/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com