NextJs создает бессерверное приложение со статическими файлами HTML вместо лямбд - PullRequest
0 голосов
/ 09 июля 2019

Я пытаюсь создать приложение с использованием следующего без сервера, но вместо вывода файлов JS в ожидаемую папку (next/serverless/pages/) мои страницы становятся статическими файлами HTML, даже при следующем построении nextjs говорит;

Compiled successfully. 

Page            Size     Files  Packages                                                                                
┌   /_app       2.04 kB    195         0                                                                                
├   /_document                                                                                                          
├   /_error     7.58 kB    230         0                                                                                
├ ⚡ /About      420 B      196         0                                                                                
└ ⚡ /Index      420 B      196         0                                                                                                                                                                                                        
λ  (Lambda)       page was emitted as a lambda (i.e. getInitialProps)                                                   
⚡  (Static File)  page was prerendered as static HTML  

Это мои next.config.js:

module.exports = {
  target: "serverless",
  distDir: "../../dist/functions/next"
};

Вывод сборки с двумя страницами (About и Index):

dist/functions/next/serverless/pages/
  _error.js
  404.html
  About.html
  Index.html

Они мне нужныбыть файлами JS, потому что позже они потребуются мне как модули для HTTP-запросов через функции firebase

1 Ответ

2 голосов
/ 23 июля 2019

Начиная с Next.js 9 по умолчанию используется Автоматическая статическая оптимизация при статическом экспорте.

Статический HTML .html хорош для производительности, однако, по некоторым причинам, если вы хотите экспортировать определенные файлы, так как .js Next.js 9 также поддерживает этот частичный статический экспорт .

Просто включите getInitialProps на страницах, которые вы хотите экспортировать как .js, тогда он выведет файл javascript вместо файла HTML.

class Index extends Component {

  // just have to add this line into any of your `pages/any-file.js`
  static getInitialProps(ctx) {
    return {};
  }

  render() {
    return (
      <div>
        <h1>Index Page</h1>
      </div>
    );
  }
}

export default Index;
...