我在Preact中编写了一个非常简单的应用程序。没有后端服务器,只有前端调用Web API并显示结果。
我在Heroku上进行了设置,并报告它已成功部署,但是尝试访问该应用程序失败了:
2020-09-14T02:10:11.845503+00:00 heroku[web.1]: Starting process with command `npm start`
2020-09-14T02:10:14.403769+00:00 app[web.1]: npm ERR! missing script: start
我应该如何[定义start
脚本以使此工作正常?
在开发中,我按照Preact文档的建议运行yarn dev
。我的猜测是那只是一个开发服务器。
FWIW,这是我的package.json
{
"private": true,
"name": "clips-preact",
"version": "0.0.0",
"license": "MIT",
"scripts": {
"build": "preact build",
"serve": "sirv build --port 8080 --cors --single",
"dev": "preact watch",
"lint": "eslint src"
},
"eslintConfig": {
"extends": "eslint-config-synacor"
},
"eslintIgnore": [
"build/*"
],
"devDependencies": {
"eslint": "^6.0.1",
"eslint-config-synacor": "^3.0.4",
"preact-cli": "^3.0.0",
"sirv-cli": "^1.0.3"
},
"dependencies": {
"axios": "^0.20.0",
"preact": "^10.1.0",
"preact-render-to-string": "^5.1.2",
"recoil": "^0.0.10"
}
}
答案 0 :(得分:0)
我迟到了,但是对于遇到此问题的任何人,您根本不应该运行单独的服务器。
Preact CLI 构建为静态输出。只需将您的网络服务器(nginx、apache)指向该目录并让它处理文件服务。
答案 1 :(得分:-1)
尝试一下:
{
"private": true,
"name": "clips-preact",
"version": "0.0.0",
"license": "MIT",
"scripts": {
"build": "preact build",
"serve": "sirv build --port 8080 --cors --single",
"dev": "preact watch",
"lint": "eslint src",
// Your file name ↓ make sure to remove this comment before you go.
"start": "node index.js"
}
您必须在“脚本”区域内添加“开始”,然后在运行脚本类型“节点your_file_name”时,这将使“ npm start”命令运行“节点your_file_name”命令。