Node.js 如何使用后期构建在heroku构建多个react应用程序

Node.js 如何使用后期构建在heroku构建多个react应用程序,node.js,reactjs,heroku,build,post-build-event,Node.js,Reactjs,Heroku,Build,Post Build Event,我想为2个react应用程序运行heroku postbuild,该应用程序使用1个单节点服务器 这就是我目前正在构建1个react应用程序的方式,它工作得非常好 "scripts": { "server": "nodemon index.js", "shop-user": "npm start --prefix shop-user", "start":

我想为2个react应用程序运行heroku postbuild,该应用程序使用1个单节点服务器

这就是我目前正在构建1个react应用程序的方式,它工作得非常好

"scripts": {
    "server": "nodemon index.js",
    "shop-user": "npm start --prefix shop-user",
    "start": "node index.js",
    "dev": "concurrently \"npm run server\" \"npm run shop-user\"",
    "heroku-postbuild": "cd shop-user && npm install && npm install --only=dev --no-shrinkwrap && npm run build"
}
我尝试了两个应用程序

"scripts": {
    "server": "nodemon index.js",
    "shop-user": "npm start --prefix shop-user",
    "start": "node index.js",
    "dev": "concurrently \"npm run server\" \"npm run shop-user\"",
    "heroku-postbuild": "cd shop-user && npm install && npm install --only=dev --no-shrinkwrap && npm run build && cd .. end-user && npm install && npm install --only=dev --no-shrinkwrap && npm run build"
  },
这是行不通的

myserver.js

if (process.env.NODE_ENV === 'production') {

    app.use('/shop', express.static(path.join(__dirname, 'shop-user/build')));
    app.use(express.static(path.join(__dirname, 'end-user/build')));

    app.get('/shop/*', (req, res) => {
        res.sendFile(path.join(__dirname, 'shop-user/build', 'index.html'));
    });

    app.get('*', (req, res) => {
        res.sendFile(path.join(__dirname, 'end-user/build', 'index.html'));
    });
}

由于cd命令中缺少
/
,因此移动到其他存储库的命令似乎已中断

替换:
cd。。最终用户&&npm安装&&npm安装--only=dev--no shrinkwrap&&npm run build“

与:
cd../end-user&&npm-install&&npm-install--only=dev--no-shrinkwrap&&npm-run-build“


这将构建您的另一个项目。

您可以分享您的错误吗?当我转到“未找到我获取页面”时,我应该在哪里获取最终用户应用程序的索引页面。当我去的时候,一切都很好。这是因为我猜,页面告诉您转到heroku cli并运行
heroku日志--tail
以查看日志,而不是构建最终用户应用程序。你会发现那里出了什么问题。如果你确切地知道问题出在哪里,就更容易解决。它显示了heroku的日志——尾巴。简单找不到文本和空白页这是一个格式错误吗?您是否确实缺少
/
此处:
cd。。最终用户和npm安装和&
?在
之后。