Ошибка связывания приложения express.js и next.js Ошибка: не удается найти модуль next.config.js ' - PullRequest
0 голосов
/ 08 июня 2019

Я установил express.js + next.js app, который отлично работает в среде разработки.Когда я пытаюсь запустить его webpack пакет, возникает ошибка его выдачи

Error: Cannot find module '/Users/user/workspace/project/next.config.js'

Я пытаюсь запустить его пакет, так как aws-lamda не позволяет мне загружать файлы размером более 50 МБ.

// server.js
const express = require('express');
const argv = require('yargs').argv;    
const nextApp = require('./nextApp.js');
const handle = nextApp.getRequestHandler();
const pageRoutes = require('./routes/pages/index.js');
const port = argv.port || 3000;

const server = express();
// route to next.js web pages
server.use('/', pageRoutes);

server.get('*', (req, res) => {
  return handle(req, res)
});

nextApp.prepare()
  .then(() => {        
    server.listen(port, (err) => {
      if (err) throw err
      console.log(`> Ready on http://localhost:${port}`)
    });
  })
  .catch((ex) => {
    console.error(ex.stack)
    process.exit(1)
  });

module.exports = server;

1 Ответ

0 голосов
/ 10 июня 2019

До сих пор я обнаружил, что мы можем / должны расширять next.config.js для добавления дополнительных записей пакета вместо создания отдельного webpack.config.js.Следующая конфигурация создаст файл serverbundle.js в каталоге build / server.

const merge = require('webpack-merge');

module.exports = {
    distDir: 'build',
    webpack (config, {isServer}) {

        if (isServer) {
            return merge(config, {
                entry () {
                    return config.entry().then((entry) => {
                        return Object.assign({}, entry, { serverbundle: './server' })
                    })
                },
                output: {
                    filename: '[name].js'
                }
            });    
        }
        return config;
    }
  }
...