МЕРН: Как получить доступ к папке сборки для развертывания Heroku?

#javascript #node.js #reactjs #heroku

Вопрос:

Как получить доступ к папке сборки в React из узла для развертывания Heroku? Я получаю ошибки, и я почти на 100% уверен, что просто не использую правильный путь.

Я думал использовать стандартную навигацию по пути ../ , но это, похоже, неверное предположение.

Иерархия файлов:

 Project Folder 
|
|___Backend-Folder
|   |
|   |___App.js
|    
|___Frontend-Folder
    |
    |___build
 

App.js (сервер):

 if (process.enn.NODE_ENV === 'production') {
  app.use(express.static(path.resolve(__dirname, "../Frontend-Folder/build")));

  app.get("*", function (request, response) {
    response.sendFile(path.resolve(__dirname, "../Frontend-Folder/build", "index.html"));
  });
}
 

Файл сборки Package.json:

 "heroku-postbuild": "NPM_CONFIG_PRODUCTION=false npm install --prefix ../Frontend-Folder amp;amp; npm run build --prefix ../Frontend-Folder"
 

В учебниках, над которыми я работал, файлы сервера и сборки находятся в одной и той же основной папке, поэтому им не нужно отступать. Есть идеи, как найти правильный путь? Я действительно ценю вашу помощь!

Ответ №1:

Прежде всего, в вашем коде есть опечатка. Это должно быть process.env.NODE_ENV , а не process.enn.NODE_ENV

Также сделайте это:

 if (process.env.NODE_ENV === "production") {
app.use(express.static(path.join(__dirname, "../Frontend-Folder/build")))

app.get("*", (req, res) => {
res.sendFile(path.resolve(__dirname, "/../Frontend-Folder", "build", 
"index.html"))
})
}
 

Обратите внимание на «присоединиться» в приложении.используйте, а не разрешайте.

Ваш файл сборки package.json должен быть:

 "heroku-postbuild": "NPM_CONFIG_PRODUCTION=false npm install --prefix Frontend- 
Folder amp;amp; npm run build --prefix Frontend-folder"