如何使用 post build 在 heroku 上构建多个 React 应用程序

how to build multiple react applications at heroku using post build

我想运行 heroku postbuild for 2 react apps which uses 1 single nodejs server.

这就是我目前构建 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"
}

以及我为 2 个应用所做的尝试

"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"
  },

这是行不通的。

我的server.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 .. end-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"

这将构建您的其他项目。