如何解决 vue-cli-service: 在heroku 上找不到问题?

Posted

技术标签:

【中文标题】如何解决 vue-cli-service: 在heroku 上找不到问题?【英文标题】:How to solve vue-cli-service: not found proplem on heroku? 【发布时间】:2020-10-10 01:21:45 【问题描述】:

我在尝试部署名为 tr3 的应用程序时遇到问题(它在 localhost 上运行良好,我还学会了使用 heroku 部署“测试应用程序”,一切都很好)。 但是现在,当我使用命令时

git push heroku 大师

有消息

remote: -----> Compressing...
remote:        Done: 22.2M
remote: -----> Launching...
remote:        Released v8
remote:        https://stark-oasis-45806.herokuapp.com/ deployed to Heroku
remote: 
remote: Verifying deploy... done.
To https://git.heroku.com/stark-oasis-45806.git
   12055ef..fbc5e05  master -> master

但是链接https://stark-oasis-45806.herokuapp.com/会导致错误

020-06-19T17:42:19.575287+00:00 app[web.1]: > tr3@0.1.0 start /app
2020-06-19T17:42:19.575288+00:00 app[web.1]: > npm run  serve
2020-06-19T17:42:19.575288+00:00 app[web.1]: 
2020-06-19T17:42:20.037740+00:00 app[web.1]: 
2020-06-19T17:42:20.037766+00:00 app[web.1]: > tr3@0.1.0 serve /app
2020-06-19T17:42:20.037767+00:00 app[web.1]: > vue-cli-service serve
2020-06-19T17:42:20.037767+00:00 app[web.1]: 
2020-06-19T17:42:20.045068+00:00 app[web.1]: sh: 1: vue-cli-service: not found
2020-06-19T17:42:20.049281+00:00 app[web.1]: npm ERR! code ELIFECYCLE
2020-06-19T17:42:20.049568+00:00 app[web.1]: npm ERR! syscall spawn
2020-06-19T17:42:20.049812+00:00 app[web.1]: npm ERR! file sh

这也是我的 package.json


  "engines": 
    "node": "10.x"
  ,
  "name": "tr3",
  "version": "0.1.0",
  "private": true,
  "scripts": 
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint",
    "start": "npm run  serve",
    "heroku-postinstall": "npm install && npm run build"
  ,
  "heroku-postinstall": "npm install && npm run build",
  "dependencies": 
    "core-js": "^3.6.5",
    "vue": "^2.6.11",
    "vue-router": "^3.3.4",
     "vuex": "^3.4.0"
  ,
  "devDependencies": 
    "@vue/cli-plugin-babel": "~4.4.0",
    "@vue/cli-plugin-eslint": "~4.4.0",
    "@vue/cli-service": "~4.4.0",
    "babel-eslint": "^10.1.0",
    "eslint": "^6.7.2",
    "eslint-plugin-vue": "^6.2.2",
    "vue-template-compiler": "^2.6.11"
  ,
  "eslintConfig": 
    "root": true,
    "env": 
      "node": true
    ,
    "extends": [
      "plugin:vue/essential",
      "eslint:recommended"
    ],
    "parserOptions": 
      "parser": "babel-eslint"
    ,
    "rules": 
  ,
  "browserslist": [
    "> 1%",
    "last 2 versions",
    "not dead"
  ]

【问题讨论】:

这能回答你的问题吗? Heroku can't find ts-node 帮了大忙,谢谢 【参考方案1】:

几天前我遇到了同样的问题,我是 Vue.js 和 Heroku 的新手,但我能够找到帮助我解决问题的信息,我希望它可以帮助其他人。

创建与package.json同级的static.json文件:


    "root": "dist",
    "clean_urls": true,
    "routes": 
        "/**": "index.html"
    

将 static.json 文件添加到 git

git add static.json
git commit -m "add static configuration"

部署到 Heroku

heroku buildpacks:add heroku/nodejs
heroku buildpacks:add https://github.com/heroku/heroku-buildpack-static
git push heroku master

信息来源:Deployment | Vue CLI

【讨论】:

【参考方案2】:

我通过运行解决了这个问题:

heroku config:set NPM_CONFIG_PRODUCTION=false YARN_PRODUCTION=false

Reddit post 和 Heroku's Skip pruning 说明帮助了我。结果是我的小 vue 应用程序不需要访问 devDependencies 的功能。我不确定这是否是最合适的做法,但它解决了我的问题。

【讨论】:

vue-cli-service 在我的开发依赖项中,所以这行得通【参考方案3】:

对于上述解决方案不起作用的人,你们可以尝试在依赖项中的 package.json 中添加“@vue/cli-service”依赖项。

解释:这是因为@vue/cli-service 仅在 devDependencies 上,所以当您在生产环境中部署您的应用程序时,您的项目中不会下载依赖项。

【讨论】:

以上是关于如何解决 vue-cli-service: 在heroku 上找不到问题?的主要内容,如果未能解决你的问题,请参考以下文章

解决:‘vue-cli-service‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件

如何在 HTTP-2 上使用 Vue-CLI-service 服务?

vue-cli-service 报错

npm启动vue-cli-service serve问题

Vue.js:如何防止 `vue-cli-service --modern` 构建遗留​​包?

如何修复 vue-cli-service 漏洞?