【问题标题】:My vue.js + Sails.js app won't run on Heroku我的 vue.js + Sails.js 应用程序无法在 Heroku 上运行
【发布时间】:2019-07-06 09:00:53
【问题描述】:

我创建了一个在我的本地服务器上运行良好的网络应用程序(Vue JS 前端,Sails JS 后端)。但是,当我尝试运行它时,会出现错误;主要是依赖错误。我已经将它部署在 Heroku 上。我必须在我的 app 文件夹的根目录中创建一个 package.json 文件。

应用树如下所示:

root folder
    |---frontend
        |---package.json file
    |---backend
        |---package.json file
    |---package.json file

我使用 vue cli webpack 创建了前端应用程序。

"name": "zigy-demo-store",
"version": "1.0.0",
"description": "A demo online store with Admin functions.",
"main": "backend/app.js",
"scripts": {
     "dev": "cd backend && npm i && npm run dev & cd frontend && npm i && npm run build",
     "start": "cd backend && npm i && npm run dev & cd frontend && npm i && npm start"
},
"dependencies": {
    "sails": ""
},
"repository": {
    "type": "git",
},
"engines": {
  "node": "^10.15",
  "npm": "6.7.0"
}
}

这里有一些错误

0 info it worked if it ends with ok
1 verbose cli [ '/usr/bin/node', '/home/adesuwa/.npm-global/bin/npm', 'start' ]
2 info using npm@6.7.0
3 info using node@v10.15.0
4 verbose run-script [ 'prestart', 'start', 'poststart' ]
5 info lifecycle zigy-demo-store@1.0.0~prestart: zigy-demo-store@1.0.0
6 info lifecycle zigy-demo-store@1.0.0~start: zigy-demo-store@1.0.0
7 verbose lifecycle zigy-demo-store@1.0.0~start: unsafe-perm in lifecycle true
8 verbose lifecycle zigy-demo-store@1.0.0~start: PATH: /home/adesuwa/.npm-global/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/media/adesuwa/Files/Programming/Dev test/zigy-demo-store/node_modules/.bin:/home/adesuwa/dart-sass/:/home/adesuwa/.npm-global/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
9 verbose lifecycle zigy-demo-store@1.0.0~start: CWD: /media/adesuwa/Files/Programming/Dev test/zigy-demo-store
10 silly lifecycle zigy-demo-store@1.0.0~start: Args: [ '-c',
10 silly lifecycle   'cd backend && npm i && npm run dev & cd frontend && npm i && npm start' ]
11 silly lifecycle zigy-demo-store@1.0.0~start: Returned: code: 1  signal: null
12 info lifecycle zigy-demo-store@1.0.0~start: Failed to exec start script
13 verbose stack Error: zigy-demo-store@1.0.0 start: `cd backend && npm i && npm run dev & cd frontend && npm i && npm start`
13 verbose stack Exit status 1
13 verbose stack     at EventEmitter.<anonymous> (/home/adesuwa/.npm-global/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:301:16)
13 verbose stack     at EventEmitter.emit (events.js:182:13)
13 verbose stack     at ChildProcess.<anonymous> (/home/adesuwa/.npm-global/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
13 verbose stack     at ChildProcess.emit (events.js:182:13)
13 verbose stack     at maybeClose (internal/child_process.js:962:16)
13 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:251:5)
14 verbose pkgid zigy-demo-store@1.0.0
15 verbose cwd /media/adesuwa/Files/Programming/Dev test/zigy-demo-store
16 verbose Linux 4.15.0-45-generic
17 verbose argv "/usr/bin/node" "/home/adesuwa/.npm-global/bin/npm" "start"
18 verbose node v10.15.0
19 verbose npm  v6.7.0
20 error code ELIFECYCLE
21 error errno 1
22 error zigy-demo-store@1.0.0 start: `cd backend && npm i && npm run dev & cd frontend && npm i && npm start`
22 error Exit status 1
23 error Failed at the zigy-demo-store@1.0.0 start script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
24 verbose exit [ 1, true ]

【问题讨论】:

  • 你应该告诉我们这些错误。

标签: heroku vue.js sails.js


【解决方案1】:

在我看来你的路径有问题。在错误日志中,我看到链接命令是:

cd backend && npm i && npm run dev & cd frontend && npm i && npm start

根据您的树形结构,backend 目录中没有frontend 目录,这使得cd frontend 失败。尝试在其中添加../ 以在进入frontend 之前上升一级:

cd backend && npm i && npm run dev & cd ../frontend && npm i && npm start

【讨论】:

  • @littlezigy 尝试附加到容器并验证文件夹结构确实是您认为的那样。如果您在创建文件夹时有类似的拼写错误,您可能将frontend 塞进了backend。不知道结果如何。
  • 所以我放弃了,只是分别部署了前端和后端应用程序。我将在单独的答案中添加详细信息。
【解决方案2】:

好的,所以我只是在 Heroku 上将前端和后端部署为单独的应用程序。我按照本教程在 Heroku 上进行 Vue.js + webpack 部署:https://codeburst.io/quick-n-clean-way-to-deploy-vue-webpack-apps-on-heroku-b522d3904bc8

我只推送位于前端文件夹中的 dist/ 文件夹,而不是推送前端文件夹。我按照文章中的步骤操作,除了 git init 部分。我 cd 到 dist 文件夹,然后在那里做了我的 git init。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-07
    • 2015-11-30
    • 2015-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-03
    相关资源
    最近更新 更多