我有一个单页面应用程序,用NodeJS编写并部署在Heroku上。
我将Procfile定义为:
web:PORT = $ PORT webpack -p --config ./config/webpack/serverProd.js --progress&&节点./dist/server.js
我之所以不使用heroku-postbuild deploy hook是因为我无法动态获取由Heroku分配的PORT变量,这是我可以访问PORT变量的唯一方法。
但是当我运行heroku run bash
并在Heroku的容器中搜索时......
ta da!
我找不到server.js
目录中应该存在的/app/dist/
。
我很确定有一些我误解的东西。任何人都可以指出这一点吗?
真的很好!
答案 0 :(得分:0)
这就是我在heroku上设置nodejs \ npm项目的方法
Procfile
web: npm run build && node dist/index.js
的package.json
"scripts": {
"clean": "rm -rf dist && mkdir dist",
"serve": "node dist/index.js",
"start": "nodemon --inspect src/index.js --exec babel-node",
"build": "npm run clean && npm run build-server",
"build-server": "babel src -d dist",
"test": "mocha --compilers js:babel-register"
},
尝试从dist / server.js而不是./dist/server.js启动应用